做者:last orderweb
第一次在掘金发文章,请大佬多多指教,来自一个萌新。小程序
最近在作小程序,遇到了点小问题,就是小程序的webview内页分享,网上也去翻了下,也找到了答案,分享下答案。bash
作的时候,遇到了2个问题:微信
最开始的时候,点击分享,分享出去的页面一直说找不到页面,网上查找了下方案,说是webview地址的问题,最后也确实是这样,改为动态地址就ok了。post
第二个问题,分享出去的页面一直是首页,实现思路是点击分享的时候,经过onShareAppMessage的一个options参数,里面有个webViewUrl,这个就是你当前的webview地址,把这个当成参数进行传递就好了,并经过wx.setStorageSync存储到本地,网页把须要传递的数据经过wx.postmessage发送给小程序,在小程序进行保存。ui
这时候,标题和分享信息已经拿到了,而后就是如何分享,以前咱们已经在点击分享的时候拿到了url参数,须要注意的是小程序遇到#这个符号的话,会把后面的所有截掉,因为以前已经把url地址保存到了本地,咱们只要处理就能够了,而后这样就能够分享了。this
至于为何须要用到本地存储,是由于分享的地址带#号,被微信给拦截掉了,就这样。url
好了,具体就是这个样子了,若是有问题的话,在私聊我吧。第一次在掘金写文章,之后请多指教。spa
let url = wx.getStorageSync('web_url');
if (url) {
let address = 'https://www.baidu.com/'
let split = url.split(address)
let res = address + split[1]
console.log(res)
this.setData({
url: res
})
}
onShareAppMessage: function (options) {
let that = this
wx.setStorageSync('web_url', options.webViewUrl)
let path = '/pages/index/index?return_url=' + options.webViewUrl
console.log(path, options)
return {
title: this.data.storeInfo.shop_name,
path: path,
success: function (res) {
// 转发成功
wx.showToast({
title: "转发成功",
icon: 'success',
duration: 2000
})
},
fail: function (res) {
console.log('失败')
console.log(res)
}
}
}
复制代码