1.有人说是vue项目ios端地址栏 不会变,我是用的 window.location.href 来传给后台生成config参数的,所以解决了
2.自定的分享不触发,打开
wx.config({
debug: true
我的项目里报fail imgurl is needed,然后我在 imgUrl 随便填了,就可以了
wx.updateAppMessageShareData({
title: '红娘端', // 分享标题
desc: '', // 分享描述
link: 'http://wwram=1', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '123.png', // 分享图标
success: function () {
// 设置成功
}
})
3.有的说ios进入Vue项目不可以使用定向
不可以在第一次进入项目使用定向!否则在ios端会导致首页wx.config失败! { path: '/', redirect:"/home" },
4.分享可以在app.vue 里直接设置,这样就不用每个页面去设置了
<template>
<div id="app" :class="isGray==1?'gray':''">
<router-view/>
</div>
</template>
<script>
import config from '@/config/index'
// import wx from 'weixin-jsapi'
import wx from 'weixin-js-sdk'
import {configapi} from "@/api/home/home"
export default {
name: 'App',
data () {
return {
isIos:false,
},
methods:{
share(){
configapi(window.location.href).then(res=>{
if(res.data.code==200){
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.data.appId, // 必填,公众号的唯一标识
timestamp:res.data.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.data.signature,// 必填,签名
jsApiList: [
'updateTimelineShareData',//1.4.0的分享接口,注意:使用新版本的分享功能,一定要在该列表加上对应的老版本功能接口,否则新接口不起作用
'updateAppMessageShareData',//1.4.0的分享接口,注意:使用新版本的分享功能,一定要在该列表加上对应的老版本功能接口,否则新接口不起作用
'onMenuShareAppMessage',//老版本分享接口。
'onMenuShareTimeline'//老版本分享接口
] // 必填,需要使用的JS接口列表
});
wx.ready(function () { //需在用户可能点击分享按钮前就先调用
console.log('redayle')
wx.updateAppMessageShareData({
title: '红娘端', // 分享标题
desc: '', // 分享描述
link: 'http://orize?param=1', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '123.png', // 分享图标
success: function () {
// 设置成功
}
})
wx.updateTimelineShareData({
title: '红娘端', // 分享标题
link: 'httwechat/authorize?param=1', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '123.png', // 分享图标
success: function () {
// 设置成功
}
})
});
}
})
}
},
watch: {
$route: {
handler: function(val, oldVal){
if(!this.isIos){
this.share();
}
},
// 深度观察监听
deep: true
}
},
mounted(){
},
created(){
const u = navigator.userAgent;
this.isIos = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
this.share();
},
}
</script>