- 将小程序原生异步函数promisify后,在async/await中使用
目前,小程序中支持使用async/await有三种模式: 1、不勾选es6转es5,不勾选增强编译;该模式是纯es7的async/await,需要基础库高版本。 2、勾选es6转es5,勾选增强编译;一般是因为调用了第三方的es5插件,通过增强编译支持async/await。 3、勾选es6转es5,不勾选增强编译;手工引入runtime.js支持async/await。 据最近更新情况,原生的函数已经大部分同时原生支持同步化了,不需要本方案转化了,直接加上await即可;比如wx.chooseImage、wx.showModal。。。具体有哪些,可以自己试。 如果只是wx.request的同步化,可参考: https://developers.weixin.qq.com/community/develop/article/doc/0004cc839407a069f77a416c056813 app.js代码: function promisify(api) { return (opt, ...arg) => { return new Promise((resolve, reject) => { api(Object.assign({}, opt, { success: resolve, fail: reject }), ...arg) }) } } App({ globalData: {}, chooseImage: promisify(wx.chooseImage), request: promisify(wx.request), getUserInfo: promisify(wx.getUserInfo), onLaunch: function () { }, }) 某page的index.js代码: const app = getApp() testAsync: async function(){ let res = await app.chooseImage() console.log(res) res = await app.request({url:'url',method:'POST',data:{x:0,y:1}}) console.log(res) }, [图片]
2020-10-20 - 使用web-view组件加载网页,禁止页面下拉显示“网页由xxx.com提供”
在小程序开发时,总有免不了使用web-view加载网页的时候,但是如果你的网页实现了overflow-y: auto;使网页可滑动查看长内容,此时在小程序页面就会出现:手指滑动页面的时候,没有触发网页内部的滚动,而是出现了整个html页面被下拉,而显示出“网页由xxx.com提供”的字样! 无论是不想暴漏域名还是不想影响网页内部的滑动功能,此时都需要禁止这种情况 下面说下我得解决方法,需要在你的网页里设置(不是在小程序页面设置): 1)html,body{height:100%;overflow:hidden;} 2).warp-cont{ position: fixed; position: -ms-device-fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; } 其中.warp-cont元素是我整个页面的所有内容的父元素,设置了以上两个css之后,页面就不能滑动了 对了,如果设置了以上内容还不起作用的话,可能是我的页面还设置了meta,可以同时设置一下 <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1" />
2021-06-09