小程序webView页面,在点击右上角按钮分享后,进入分享的链接页面空白
重新进入页面后,页面空白。使用电脑打开之后报错提示如下
webview页面转发后,小程序会将url参数转码,这时如果 不对页面地址重新进行解码 页面重绘失败,导致页面空白
- // index.js
- // 获取应用实例
- const app = getApp()
- var util = require('../utils/util.js');
- Page({
- data: {
- url:''
- },
- onLoad(options){
- if(options.weburl){
- const weburl = decodeURIComponent(options.weburl)
- this.setData({
- url: weburl
- })
- }
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
-
- }
- })
需要通过小程序提供的onShareAppMessage方法,重新组装分享所需要的对象,包括分享的标题(title)、分享页面地址(path)、分享图片(imageUrl)等。组装完毕,重新赋值。
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function (res) {
- console.log("分享", res)
- let shareObj = {
- tittle: res.title, //默认是小程序名称
- path: `/pages/product/index?weburl=${encodeURIComponent(res.webViewUrl)}`, //页面分享
- success: function(ress){
- // 转发成功之后的回调
- if(ress.errMsg == 'shareAppMessage:ok'){
- console.log("chenggon")
- }
- },
- fail: function(error){
- console.log("分享错误", error)
- // 转发失败之后的回调
- if(res.errMsg == 'shareAppMessage:fail cancel'){
- // 用户取消转发
- }else if(res.errMsg == 'shareAppMessage:fail'){
- // 转发失败,其中 detail message 为详细失败信息
- }
- },
- complete: function(){
- // 转发结束之后的回调(转发成不成功都会执行)
-
- }
- }
- return shareObj;
- }
微信平台关于小程序的开发文档链接已备好,可直接飞走~wx.updateShareMenu(Object object) | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api/share/wx.updateShareMenu.html