微信6.0.2内置浏览器网页分享控制失效应急办法
时间:2015-01-05 15:09:59
收藏:0
阅读:671
但是幸运的是,WeixinJSBridge.invoke(‘shareTimeline‘)和WeixinJSBridge.invoke(‘sendAppMessage‘)还是可以用的,所以我的解决办法是:
1.隐藏右上角按钮
2.给自己的应用加一个悬浮的toolbar,在toolbar里放上"分享"按钮。
分享按钮大致如下:
html部分:
<button onclick="WeixinJSBridge.invoke(‘shareTimeline‘)">分享到朋友圈</button> <button onclick="WeixinJSBridge.invoke(‘sendAppMessage‘)">发送给朋友</button>
或者你可以做的更复杂一些,比如
<button onclick="shareTo(‘timeline‘)">分享到朋友圈</button>
<button onclick="shareTo(‘friend‘)">发送给朋友</button>
<!-- lang: javascript -->
<script>
//分享控制
var WxOptions = {
"img_url": "http://xxx/logo.jpg",//图片
"img_width": "120",
"img_height": "120",
"link": window.location.href,//分享链接
"title": "顶顶顶顶顶顶",//定义分享标题
"desc":"烦烦烦嘎嘎嘎",
};
function shareTo(type)
{
var callback = function(errmsg){};//分享成功后的回调
if (type=="timeline") {
WeixinJSBridge.invoke(‘shareTimeline‘,WxOptions,callback);
}else{
WeixinJSBridge.invoke(‘sendAppMessage‘, WxOptions,callback);
}
}
</script>
-完-
=-=-=-=-=-华丽的分割线-=-=-=-=
最新测试结果,这方法也无效,通过抓包发现微信里面打开一个网页时,会自动在末尾插入一个隐藏域,大概就像这样:
<iframe id="__WeixinJSBridgeIframe_SetResult" src="weixin://private/setresult/SCENE_HANDLEMSGFROMWX&eyJfX2Vycl9jb2RlIjoiZXY0MDQifQ==" style="display: none;"></iframe>
刚进页面,直接调用invoke是无效的,会报 ‘access denied‘,只有当用户自己通过右上角分享的时候,该隐藏域的src会自动变化,我理解为授权过程,之后invoke方法才能调用,但是这又有什么意义呢?
微信这次做的真绝啊,连指定分享链接和标题、说明都不给了。
评论(0)