fm:首先 先看文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#44
然后 弄个公众号测试账号 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
然后 填一些信息
然后 就是在页面进来时 先去wx.config debug开启确认成功之后 再去做分享啊 摄像头啊 其他的
const jssdk_share = function(me, option) {
var me = this
var now_url = window.location.href
var can_share = false
var jsApiList = ['updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareWeibo']
var openTagList = []
var ip = '192.168.50.212'
config(jsApiList, openTagList, now_url, ip).then(res => {
var res = res[1].data.data
jweixin.config({
debug: res.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.appId, // 必填,公众号的唯一标识
timestamp: res.timestamp, // 必填,生成签名的时间戳
nonceStr: res.nonceStr, // 必填,生成签名的随机串
signature: res.signature, // 必填,签名
jsApiList: res.jsApiList // 必填,需要使用的JS接口列表
})
})
jweixin.ready(() => {
// config信息验证后会执行ready方法
// 所有接口调用都必须在config接口获得结果之后
// config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
// 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
jweixin.checkJsApi({
jsApiList: [
'onMenuShareWeibo',
'updateAppMessageShareData',
'updateTimelineShareData'
], // 需要检测的JS接口列表,所有JS接口列表见附录2,
success: function(res) {
console.log('checkJsApi:', res)
},
})
})
}
然后呢 在main.js ;里面做一个全局混入
Vue.mixin({
data(){
return {
access_id: Vue.prototype.$store.state.access_id || uni.getStorageSync('access_id'),
language: zh_CN,
languageType: "",
hasGrade: ''
}
},
created () {
this.setLang();
// #ifdef H5
window.onbeforeunload = function () {
window.scrollTo(0, 0);
}
// #endif
this.hasGrade = uni.getStorageSync('hasGrade')
},
onLoad: function(option) {
if (option.fatherId) {
uni.setStorageSync('fatherId', option.fatherId);
if (option.isfx) {
laiketuiComm.bindPID(option.isfx, option.fatherId)
}
}
//然后在全局初始化的时候去config这个方法
// #ifdef H5
jssdk_share(this, option)
// #endif
},
onShow() {
this.setLang();
if(this.getURL('nph_id')){
uni.setStorageSync('mch_id',this.getURL('nph_id'))
}else{
uni.setStorageSync('mch_id','0')
}
},
computed: {
halfWidth () {
return `${statusBarHeight}px`
}
},
methods: {
// 获取url地址键值
getURL(param){
var query = window.location.search;
var iLen = param.length;
var iStart = query.indexOf(param);
if (iStart == -1){
return "";
}
iStart += iLen + 1;
var iEnd = query.indexOf("&", iStart);
if (iEnd == -1){
return query.substring(iStart);
}
return query.substring(iStart, iEnd);
},
//在你需要分享的页面调用这个方法
config(title){
var now_url = window.location.href
//显示分享的按钮
this.$jweixin.showOptionMenu()
jweixin.updateAppMessageShareData({
title: title, // 分享标题
desc: '我出来了!', // 分享描述
link: now_url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'https://profile.csdnimg.cn/B/B/4/0_weixin_45549016', // 分享图标
})
jweixin.updateTimelineShareData({
title:title,
desc: '啊呦!',
link: now_url,
imgUrl: 'https://profile.csdnimg.cn/B/B/4/0_weixin_45549016',
})
},
// 检测登录
isLogin(callback){
this.$nextTick(() => {
this.$refs.lktAuthorizeComp.handleAfterAuth(this, 'snsapi_userinfo', function() {
callback && callback()
});
})
},
}
})
因为有些页面不能分享 比如购物车 个人信息 不能分享 所以在不能分享的页面初始化的时候 执行这个方法
// 禁止分享
this.$jweixin.hideOptionMenu()
到这里 应该都可以自定义分享了