收藏
回答

onShareAppMessage无效

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onShareAppMessage 客户端 6.7.3 最新的

- 当前 Bug 的表现(可附上截图)


- 预期表现

小程序右上角分享可以获取webview的地址,并且地址作为参数用小程序的路由分享带出来。当别人打开时,打开的是设置的路由,路由含有分享时的参数。


- 复现路径

比如在/pages/index中有webview组件,其初始地址是https://www.aiplat.com/index,在跳转到内页后https://www.aiplat.com/index/info?id=888888,在这个页面分享出来的路由( 这个叫第一次分享)也是/pages/index?p=/index/info&id=888888,在这含有p参数时/pages/index会将webview的地址变为https://www.aiplat.com/index/info?id=888888。但是在多次转发后,打开的页面一直是最初分享后的地址。比如在别人打开第一次分享时跳转是https://www.aiplat.com/index/info?id=888888,然后在这个页面打开到其他页面时https://www.aiplat.com/index/list/add,此时分享出来的路由却还是第一次分享时的/pages/index?p=/index/info&id=888888。这个应该是/pages/index?p=/index/list/add。ios和安卓都有这个问题。


- 提供一个最简复现 Demo


回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-11-08

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-11-08
    有用
    回复 5
    • 小梁@恭囍發財aiplat.com
      小梁@恭囍發財aiplat.com
      2018-11-08

      onShareAppMessage = function(res) {

      var url = res.webViewUrl;

      url = url.split('aiplat.com')[1];

      var s = '&share=1';

      if (url.indexOf('?') > -1) {

      var a = url.split('?');

      url = a[0] + '&' + a[1];

      }

      url += s;

      url = '/pages/index?url=' + url;

      console.log(url);

      return {

      title: 'aiplat.com',

      path: url

      };

      };



      onShareAppMessage 的代码是这样的。


      2018-11-08
      回复
    • 小梁@恭囍發財aiplat.com
      小梁@恭囍發財aiplat.com
      2018-11-08回复小梁@恭囍發財aiplat.com

      用的是wepy框架

      2018-11-08
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2018-11-08回复小梁@恭囍發財aiplat.com

      你好,如果是wepy框架的问题还需向wepy团队反馈哈

      2018-11-08
      回复
    • 小梁@恭囍發財aiplat.com
      小梁@恭囍發財aiplat.com
      2018-11-13回复社区技术运营专员-娇华

      就是有一个分享的监听方法onShareAppMessage,这个方法在小程序列表里打开小程序,进入任意页面分享出来的路由是/pages/share?****,此时执行了onShareAppMessage方法。但是在/pages/share?****打开页面到其他页面再去第二次分享时,分享出来的路由依然是/pages/share?****,因为这次分享并没有执行onShareAppMessage方法。onShareAppMessage方法用于获取当前打开的webview页面地址,是官方自带的监听方法。

      2018-11-13
      回复
    • 小梁@恭囍發財aiplat.com
      小梁@恭囍發財aiplat.com
      2018-11-13回复小梁@恭囍發財aiplat.com

      就是在第一次分享出来的路由打开小程序,在这个基础上进入到其他页面再去分享时,分享出来的路由依然是第一次分享出来的路由。

      2018-11-13
      回复
  • carrykingdow
    carrykingdow
    2018-11-09

    你这个问题 我前几天刚解决。我这边出现这个问题的原因是因为,我用了第三方统计sdk---阿拉丁

    然后用的是7.0.0的版本。通过一系列测试后来发现可能是阿拉丁的问题。我又去阿拉丁官网下了一个新包,,不过也是7.0.0的。替换后发现没有此问题了。

    仅供参考。

    2018-11-09
    有用
    回复 1
  • 小梁@恭囍發財aiplat.com
    小梁@恭囍發財aiplat.com
    2018-11-08

    是用wepy的

    2018-11-08
    有用
    回复
登录 后发表内容