收藏
回答

onShareAppMessage 定义了 title imageUrl 但是都不生效?

页面的js文件里面代码如下:

/**
 * 微信小程序:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareAppMessage-Object-object
 * QQ小程序:https://q.qq.com/wiki/develop/miniprogram/frame/logic/logic_register_page.html#%E9%A1%B5%E9%9D%A2%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0
 * 监听用户点击页面内转发按钮(<button> 组件 open-type="share")或右上角菜单"分享给好友"、"分享到空间"按钮的行为,并自定义转发内容
 */
onShareAppMessage(res) {
 
    return {
 
        //转发标题
        title: "这里是标题",
 
        //转发路径(当前页面 path ,必须是以 / 开头的完整路径)
        path: "/"+this.route,
 
        //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4。
        //imageUrl: this.customData.shareImageUrl,
        imageUrl:'https://pic.qzone.cc/2019/11/01/zZNub6xb.jpg/460'
 
        // //PCQQ、低版本手机QQ无法执行小程序时打开的H5页面
        // generalWebpageUrl: params.constant.appDownloadUrl,
        //
        // //监听用户点击页面内转发按钮的,只有带上该参数,才支持快速分享
        // entryDataHash: "",
        //
        // //分享模板id,可以使用不同的分享样式,需要在开发者管理端进行配置,只有配置了才会生效
        // shareTemplateId: params.constant.shareTemplateId,
        //
        // //分享模板的数据,不同的模板id需要不同的数据,数据的格式请参考管理端
        // shareTemplateData: { "txt1": "中间文案", "txt2": "底部文案" },
        //
        // //指定分享的类型,具体查看下面shareType的说明
        // //用来指定分享的类型,目前分享有两种,一种是分享小程序,另外一种是分享一张图片。
        // //  miniapp:以小程序的形式分享,title、path、imageUrl、generalWebpageUrl、entryDataHash、shareTemplateId、shareTemplateData参数会生效
        // //  picture:以图片的形式分享,imageUrl、entryDataHash参数会生效
        // shareType: "miniapp",
    }
},


分享的截图如下:

麻烦官方同学帮看一眼?



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

5 个回答

  • 高勇
    高勇
    2019-11-01
    /**
     * 使用方法:
     * 1、app.js 引入此文件:const page = require('xx/xx/page);
     * 2、app.js onLaunch 的时候 Page = page
     *
     * 问题:
     *  增加了这个文件的使用后,onShareAppMessage定义的参数都会失效 2019/11/01
     */
     
    const originalPage = Page;
    import proxy from './promisify';
     
    function page(conf) {
        let hooks = ['onLoad', 'onReady', 'onShow', 'onHide', 'onUnload', 'onPullDownRefresh', 'onReachBottom', 'onShareAppMessage','back','home'];
        conf.wx = proxy;
        Object.keys(conf).map(v => {
            if (typeof conf[v] === 'function' && hooks.indexOf(v) === -1) {
                let cusFunc = conf[v]
                conf[v] = function(e) {
                    // 交互事件
                    //console.log('e', e);
                    if (e && e.type) {
                        let dataset = e.currentTarget.dataset, //组件data-xx参数集合
                            pages = getCurrentPages(),
                            currPage = pages[pages.length - 1],
                            prevPage = pages[pages.length - 2];
                        switch (e.type) {
                            case 'tap':
                                // tap事件, 可提交点击事件日志,
                                console.log('tap事件');
                                break;
                            case 'touchstart' || "touchmove" || "touchend":
                                // touch事件, 可提交触摸事件日志
                                console.log('touch事件');
                                break;
                            case 'back':
                                console.log("back 事件工作");
                                break;
                            case 'home':
                                console.log("back 事件工作");
                                break;
                        }
                        console.log(dataset, currPage.route);
                        // 可以通过currentPages给跟不同页面通信
                        currPage.setData({
                            abc: 'bcd'
                        })
                    }
                    cusFunc.call(this, e);
                }
            }
            // 钩子事件, 可提交pv,uv日志
            else if (hooks.indexOf(v) > -1) {
                let cusHook = conf[v];
                conf[v] = function(e) {
                    const pages = getCurrentPages(),
                        currPage = pages[pages.length - 1],
                        prevPage = pages[pages.length - 2];
                     
                    console.log('page:' + currPage.route + ' ' + v + ' at ' + Date.now());
                    cusHook.call(this, e);
                }
            }
        })
        return originalPage(conf)
    }
    module.exports = page;


    找的问题了,是因为这个文件的影响,把这个的使用注释掉,就可以了...


    问题找到了,原因我在研究下代码,多谢大家,非常感谢。大家都好运👍

    2019-11-01
    有用
    回复 3
  • M。
    M。
    2019-11-01

    你这个方法是写在什么里面了吗?

    2019-11-01
    有用
    回复 1
    • 高勇
      高勇
      2019-11-01
      解决了,多谢多谢
      2019-11-01
      回复
  • 闲杂人
    闲杂人
    2019-11-01

    如果你这里的图片太大的话图片还没加载出来它就转发出去了,会导致使用默认的页面截图,

    2019-11-01
    有用
    回复 1
    • 高勇
      高勇
      2019-11-01
      解决了,多谢多谢
      2019-11-01
      回复
  • 小满
    小满
    2019-11-01

    可以的,您在自检一下

    2019-11-01
    有用
    回复 2
    • 高勇
      高勇
      2019-11-01
      我? 模拟器(清除数据),真机(删了重装)好几次,都是这样子..
      2019-11-01
      回复
    • 高勇
      高勇
      2019-11-01
      解决了,多谢多谢
      2019-11-01
      回复
  • 王志鹏
    王志鹏
    2019-11-01


    复制你的代码   有内容啊

    2019-11-01
    有用
    回复 11
    • 王志鹏
      王志鹏
      2019-11-01
      onShareAppMessage 这个函数是分享的页面每个都要单独写的   不会弄错页面了吧
      2019-11-01
      回复
    • 高勇
      高勇
      2019-11-01
      我? 模拟器(清除数据),真机(删了重装)好几次,都是这样子..
      2019-11-01
      回复
    • 王志鹏
      王志鹏
      2019-11-01回复高勇
      点了分享  然后和onShareAppMessage把你整个开发工具截图发来看看
      2019-11-01
      回复
    • 高勇
      高勇
      2019-11-01
      截了全屏
      2019-11-01
      回复
    • 王志鹏
      王志鹏
      2019-11-01回复高勇
      检查下是不是有两个分享函数  覆盖了
      2019-11-01
      回复
    查看更多(6)
登录 后发表内容
问题标签