热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小順序初踩坑

寫在前面一向有在關注小遞次,也做過一些demo,不過一向沒上正式項目,恰好此次公司有小遞次的項目就入坑了。項目開闢完,紀錄一下碰到的一些坑吧。框架選用框架方面有關注wepy和mpv

寫在前面

一向有在關注小遞次,也做過一些demo,不過一向沒上正式項目,恰好此次公司有小遞次的項目就入坑了。項目開闢完,紀錄一下碰到的一些坑吧。

框架選用

框架方面有關注wepy和mpvue,wepy是騰訊內部的框架,宣布時刻較久,社區也較完美,相對穩固。mpvue是美團剛出的小遞次框架,也很不錯,能夠直接用Vue的寫法去舉行開闢,進修本錢較低,瑕玷是剛推出,雖然美團內部有在運用,不過社區還沒起來。項目比較趕,照樣挑選較穩固的wepy了。

下圖為美團供應的一張框架對照圖,詳細對照能夠參考下,須要注重的是wepy現在也能夠用wepy-redux舉行數據管理了。

《小順序初踩坑》

正文

坑一:wepy methods function

wepy的methods與Vue中的methods運用體式格局不太一樣。wepy的methods重要寄存相應wxml中所捕獲到的事宜的函數,假如想在onLoad或許其他函數中挪用methods中的要領,運用this.funcname()是沒辦法挪用到的,須要this.methods.funcname()。想把函數掛載在實例下,能夠直接在class中定義函數就能夠了,與onLoad同級。


坑二:小遞次默認頁

小遞次是以config中的pages數組的第一個元素作為默認頁的,假如須要變動默認頁則須要變動對應的數組遞次。

{
"pages":[
"pages/index",
"pages/page2"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black"
}
}

坑三:wx.drawImage運用收集圖片

當運用收集圖片舉行wx.drawImage的時刻會湧現黑色的底圖,原因是wx.drawImage沒法直接加載收集圖片,須要先運用wx.downloadFile下載文件資本到當地,在回調函數里運用tempFilePath舉行wx.drawImage,或許頁面初始化時預加載,保留tempFilePath。

const ctx = wx.createCanvasContext('myCanvas')
wx.downloadFile({
url: 'https://example.com/audio/123', //僅為示例,並不是實在的資本
success: function(res) {
// 只需服務器有相應數據,就會把相應內容寫入文件並進入 success 回調,營業須要自行推斷是不是下載到了想要的內容
ctx.drawImage(res.tempFilePath, 0, 0, 150, 100)
ctx.draw()
}
})

坑四:在 微信6.6.1版本,wx.drawImage 當 sy > sHeight 繪製不出圖片

官方bug,已在微信6.6.2修復

const ctx = wx.createCanvasContext('myCanvas')
ctx.drawImage(img, 0, 999, 800, 950, 0, 0, 400, 475) // 湧現黑色底圖

坑五:放大canvas尺寸后初次wx.drawImage,圖片會湧現黑邊

原因是變動canvas尺寸后,canvns還沒重繪完造詣執行了wx.drawImage,所以會湧現圖片繪製不全的狀況。解決方案是運用一張足夠大的畫布,在上面舉行drawIamge,wx.canvasToTempFilePath的時刻輸出圖片大小傳drawImage的寬高。
《小順序初踩坑》

坑六:invokeCanvasMethod 數據傳輸長度為 1372965 已凌駕最大長度 1048576

需求是操縱三張圖片的imageData舉行合成圖片,然則效果canvasPutImageData的時刻報數據傳輸長度超越最大長度1M,
然則壓縮到1M後圖片質量又很隱約(最大隻要510*510像素)。
解決要領是將imageData經由過程JPEG庫轉成ArrayBuffer,再經由過程wx.arrayBufferToBase64轉成base64,一頓操縱以後終究沒有1MB的限定了,然則操縱數據也不宜過大,不然會致使頁面卡死。
《小順序初踩坑》

let arrBuffer = new JPEG().encode(resultImgData, 100, true)
let res = `data:image/jpeg;base64,${wx.arrayBufferToBase64(arrBuffer)}`

坑七: iOS 微信6.6.2分享后頁面點擊不相應

官方bug,已在微信6.6.3修復

未完待續。。。


推荐阅读
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • vue中使用tinymcevue创建富文本编辑器组件,安卓内存监控悬浮窗
    *使用public本地库*引入tinymce主件importtinymcefrom‘………publictinymcetinymce’引入tinymce-vue组件imp ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
author-avatar
VASTEw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有