收藏
回答

小程序:转发功能写到公共js模块里,是不能用的吗?

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug 转发:onShareAppMessage 微信iOS客户端 Android 6.6.6 1.7.0

我的需求是这样的:希望在产品的任何一个页面都可以使用转发功能,所以我将转发功能的函数放入了公共的util.js页面里面;并对外导出,如下:


util.js文件

const share = res =>{
if (res.from === 'menu') {
console.log(res);// 来自页面内转发按钮
 }
return {
title: '您的好友向您推荐了好玩的小程序,快来看看吧',
   path: '/pages/user/user',
   imageUrl:'/images/share.jpg',
   success: function(res) {
console.log('转发成功');// 转发成功
   },
   fail: function(res) {
console.log('转发失败');// 转发失败
   }
}
}
module.exports = {
share:share,
}



index.js  -页面,引入了util.js文件,并调用util.share这个方法

    //获取应用实例
const app = getApp()
const util = require('../../utils/util.js');

Page({
data: {
motto: 'Hello World',
   userInfo: {},
   hasUserInfo: false,
   canIUse: wx.canIUse('button.open-type.getUserInfo')
},
 onLoad: function () {

  getUserInfo: function(e) {
  console.log(e)
  app.globalData.userInfo = e.detail.userInfo;
     this.setData({
  userInfo: e.detail.userInfo,
      hasUserInfo: true,
    })
 },

 /*转发*/
 onShareAppMessage: function(res){

util.share(res); 

     console.log(util.share(res))
 }

})



步骤:在index页面点了右上角的三个点后会弹出转发按钮,控制台也可以打印出来util.share(res)的函数信息,但是转发的时候标题和图片还是显示的小程序的名称和默认的页面图片;






小女子刚学习小程序,还请大神们多多赐教,版本库用的1.7.0的,不知道是不是微信禁止转发做成公共的模块吗?还请了解的小哥哥们帮忙解答一下



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

9 个回答

  • 陌陌搬砖
    陌陌搬砖
    2019-02-11

    虽然这个问题已经很久了

    但是我想提供一个想法


    /*转发*/

    onShareAppMessage: function(res){

    util.share(res);  

    console.log(util.share(res));

    }


    这个写法的问题应该是没有把配置对象返回

    改成下面的样子应该就行了


    onShareAppMessage: function(res){

    let cfg=util.share(res);  

    console.log(cfg);

            return cfg;

    }


    2019-02-11
    有用
    回复
  • 疯狂的乌龟
    疯狂的乌龟
    2018-04-24

    我的天啊。

    onShareAppMessage 这是个function啊

    你们想干嘛啊,给它function不就行了吗

    2018-04-24
    有用
    回复
  • 帅得很
    帅得很
    2018-04-23

    我也遇到这个问题,如果真的要每个页面都单独写,不得恶心死人么

    2018-04-23
    有用
    回复
  • 大师哥
    大师哥
    2018-04-23

    @5楼:

    onShareAppMessage: new Share().share_mess(this.data.job_id)

    后面不能加参数是吗?

    pages/HR/managerDetails/managerDetails.js 出现脚本错误或者未正确调用 Page()


    2018-04-23
    有用
    回复
  • 疯狂的乌龟
    疯狂的乌龟
    2018-04-23

    。。。

    onShareAppMessage:util.share


    2018-04-23
    有用
    回复
  • 大师哥
    大师哥
    2018-04-21

    问题解决了吗?每个都需要写一个,是不是要疯!

    2018-04-21
    有用
    回复
  • 睡前原谅一切
    睡前原谅一切
    2018-04-19

    那就每个页面都写一个吧

    2018-04-19
    有用
    回复
  • Nancy
    Nancy
    2018-04-19

    写到app.js里面也是一样的不能用,不过一般也不推荐写到app.js里面吧

    2018-04-19
    有用
    回复
  • 睡前原谅一切
    睡前原谅一切
    2018-04-19

    - -写到app.js里面呢。如果不行 那就是不行了需要每个业务页面单独写。

    2018-04-19
    有用
    回复
登录 后发表内容