收藏
回答

怎么能做到在小程序的任意页面都能转发?

设置小程序转发,只能是单页面模式吗?怎么能做到在任意页面都能转发?只能是到每个页面的js里添加onShareAppMessage() 吗?好像在app.js里也不能设置onShareAppMessage()

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

5 个回答

  • 你是人间四月天
    你是人间四月天
    2023-05-19

    我项目里面用的这个方案: 除了配置全局的分享,还可以配置某些页面不分享.

    项目环境是uniapp的,需要的道友可以抄作业.

    https://zhuanlan.zhihu.com/p/584480332


    2023-05-19
    有用 1
    回复
  • P
e
a
k
    P e a k
    2023-05-19
    App({
      async onLaunch() {
        //实时监听路由变化 官方文档里没有说明这个API,但是可以使用有一点延迟
        wx.onAppRoute(() => {
          let pages = getCurrentPages();
          let view = pages[pages.length - 1]; //获取当前页面的实例,可以获取到当前页面路径等等
          view.onShareAppMessage = () => {
            return {
              path"/pages/index/index", //我这边所有转发都配置到首页
              imageUrl"/images/share_bg.png", //转发的封面
            };
          };
        });
      globalData: { },
    });
    


    2023-05-19
    有用 1
    回复 1
  • ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    2023-05-19

    转发到朋友圈是只能单页面模式。

    是的,任意页面转发需要每个页面定义onShareAppMessage,不行自己对Page做个封装呗

    export default function TPage(ops) {
        if (typeof(ops.onShareAppMessage) !== 'function') {
            ops.onShareAppMessage = ...
        }
        Page(ops)
    }
    


    import TPage from '..TPage'
    
    TPage({
        // ...
    })
    


    像这样不就行了,实在再懒一点直接在app.js里面

    Object.prototype.TPage = function(ops) {
        if (typeof(ops.onShareAppMessage) !== 'function') {
            ops.onShareAppMessage = ...
        }
        Page(ops)
    }
    


    这样你import都能省了,直接TPage

    

    2023-05-19
    有用
    回复
  • Code Weaver
    Code Weaver
    2023-05-19

    app.js设置wx.showShareMenu()试试

    2023-05-19
    有用
    回复
  • Diligent
    Diligent
    2023-05-19

    一个个加吧

    2023-05-19
    有用
    回复
登录 后发表内容