解决小程序IOS内嵌SPA,调用分享时获取的webViewUrl不是当前页的bug

环境

IOS

小程序使用组件web-view

单页面应用

现象:使用小程序web-view组件的时候,会发现在ios中打开内嵌SAP时,会发现在分享的时候,有时拿到的webViewUrl并不是当前页面的url。

解决方法

其实解决方法也很简单,从web-view开放能力中,我们能找到这样的接口:

wx.miniProgram.postMessage 向小程序发送消息 通过该接口,我们就能在分享的时候,将需要分享的链接,传入到分享中去。

使用方法

# 小程序-wxml
<web-view src="{{source}}" bindmessage="bindmessage"></web-view>
# 小程序-js
  /**
   * 绑定从分享处传过来的信息
   * @param {*} e
   */
  bindmessage(e) {
    let data = e.detail.data;
    let index = data.length - 1;

    this.setData({
      from: data[index].from,
      to: data[index].to,
      shareTitle:
        data[index].shareTitle == undefined ? "" : data[index].shareTitle,
      attach: data[index].attach
    });
  }
  
   /**
   * 配置通用分享消息
   */
  onShareAppMessage(options) {
    let shareTitle = this.data.shareTitle;
    if (shareTitle === undefined || shareTitle == "") {
      shareTitle = "xxxxxx";
    }

    let from = encodeURIComponent(this.data.from);
    let to = encodeURIComponent(this.data.to);
    let attach = encodeURIComponent(this.data.attach); 

    return {
      title: shareTitle,
      path:
        "/pages/index/index?from=" + from + "&to=" + to + "&attach=" + attach
    };
  }
复制代码
SPA页面
//此处可以传入当前url的链接,或者自己根据相关业务逻辑传入所需参数信息
 wx.miniProgram.postMessage({
      data: {
        from: "aaa",
        to: "bbbb",
        attach: "a=1&b=3",
        shareTitle: "shareTitle"
      }
    });
复制代码

就这么简单~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值