微信内置浏览器对象WeixinJSBridge在微信jssdk1.4.0之后调用的返回内容修改了?
背景:
对现有业务的jssdk做升级工作,从1.0.0升级到1.6.0。
业务场景:
微信分享功能
环境:
微信公众号
问题:
问题1:1.0.0版本的分享页面加载微信浏览器内置对象的时候默认不会调用<span style="font-size: 16px;">WeixinJSBridge.on的</span>callback函数,但是代码不变的情况下1.6.0版本下页面一加载的时候就直接触发<span style="font-size: 16px;">WeixinJSBridge.on的</span>callback函数,怀疑是在WeixinJSBridge.on的时候触发了对应的function函数的调用;另外说明一下,我的callback函数就是一个弹窗来提示用户分享是否成功的提示语。1.0.0的时候页面你打开不显示提示语,只有在实际分享后才会显示提示语,但是1.6.0版本下页面一加载后就直接弹出提示信息,奇怪的很。
具体问题:
我们的业务是基于公众号开发的,对于分享功能,调用了微信浏览器内置对象WeixinJSBridge,在分享页面和分享功能调用处会动态提前load shareWeixin.js,这是个初始化程序,负责初始化分享对象的基础{key:value}值,初始化微信浏览器对象并绑定事件(onBridgeReady)
initWeiXinJs();
function onBridgeReady() {
if (typeof WeixinJSBridge != "undefined") {
// 发送给好友
WeixinJSBridge.on('menu:share:appmessage', function (argv) {
WeiXinData.onShareFun();
WeixinJSBridge.invoke('sendAppMessage',WeiXinData, //WeiXinData.callBackFun
//res.errMsg,if it contains ':ok' means success,else false;
function(res){alert('invoke menu:share:appmessage ');WeiXinData.callBackFun(res);}
);
});
// 分享到朋友圈
WeixinJSBridge.on('menu:share:timeline', function (argv) {
WeiXinData.onShareFun();
WeixinJSBridge.invoke('shareTimeline', WeiXinData, //WeiXinData.callBackFun
function(res){WeiXinData.callBackFun(res);}
);
});
// 分享到微博
WeixinJSBridge.on('menu:share:weibo', function (argv) {
WeiXinData.onShareFun();
WeixinJSBridge.invoke('shareWeibo', { "content": WeiXinData.desc, "url": WeiXinData.link }, WeiXinData.callBackFun);
});
WeixinJSBridge.call('showOptionMenu');
}
var initFunc = function(){
if(typeof wx != ‘undefined’){
wx.showOptionMenu();
// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
//"menuItem:share:appMessage",
wx.hideMenuItems({
menuList: WX\_menuItems\_allUnused().concat(WX\_menuItems\_browser())
});
/\*
wx.showMenuItems({
menuList: WX\_menuItems\_share()
});
\*/
// 发送给好友
wx.updateAppMessageShareData(WeiXinData);
// wx.onMenuShareAppMessage(WeiXinData); //old
// 分享到朋友圈
wx.updateAppMessageShareData(WeiXinData);
// wx.onMenuShareTimeline(WeiXinData); //old
// 分享到QQ?
//wx.onMenuShareQQ(WeiXinData);
// 分享到微博
wx.onMenuShareWeibo(WeiXinData);
// 分享到QQ空间?
//wx.onMenuShareQZone(WeiXinData);
} };
WeiXinData.imgUrl = WeiXinData.img\_url;
WeiXinData.success = function(){
WeiXinData.callBackFun();
};
wx.ready(function(){
initFunc();
});
}
这段代码在1.0.0版本下,我在第一次打开有分享功能的页面的时候