但是幸运的是,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方法才能调用,但是这又有什么意义呢?
微信这次做的真绝啊,连指定分享链接和标题、说明都不给了。