小程序:转发功能写到公共js模块里,是不能用的吗?
发布于 5 年前 作者 xia30 12715 次浏览 来自 问答

我的需求是这样的:希望在产品的任何一个页面都可以使用转发功能,所以我将转发功能的函数放入了公共的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 回复

@5楼:

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

后面不能加参数是吗?

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

我的天啊。

onShareAppMessage 这是个function啊

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

。。。

onShareAppMessage:util.share

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

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

虽然这个问题已经很久了

但是我想提供一个想法

/*转发*/

onShareAppMessage: function(res){

util.share(res);  

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

}

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

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

onShareAppMessage: function(res){

let cfg=util.share(res);  

console.log(cfg);

        return cfg;

}

那就每个页面都写一个吧

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

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