初写小程序,记录下开发过程中遇到的部分手机打开web-view页面空白,以及web-view页面分享空白页的问题,以及解决方法。
出现场景:当web-view加载的页面中存在中文字符时,会出现此问题。
原因:部分ios手机打开web-view页面,并没有进行encodeURI编码;在使用encodeURI编码后,页面可打开,但进行微信小程序分享时,会再自行encode一次,导致部分ios解码不成功,分享后显示空白。
解决发法:加载含中文字符的页面时,将url进行编码encodeURI(url),可打开含中文字符的页面。例:
onLoad: function (options){
this.setData({
url: options.url ? encodeURI(options.url ) : '',
})
}
在页面进行分享时,在onShareAppMessage方法中进行多次解码。如
onShareAppMessage: function (options) {
var returnUrl = decodeURI(decodeURI(decodeURI(options.webViewUrl)))
return {
path: "分享的页面路径?url=" + returnUrl
}
}
若有不足之后,欢迎大家指正!
网友评论