码迷,mamicode.com
首页 > 微信 > 详细

微信6.0.2内置浏览器网页分享控制失效应急办法

时间:2015-01-05 15:09:59      阅读:671      评论:0      收藏:0      [点我收藏+]

标签:

但是幸运的是,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&amp;eyJfX2Vycl9jb2RlIjoiZXY0MDQifQ==" style="display: none;"></iframe>

刚进页面,直接调用invoke是无效的,会报 ‘access denied‘,只有当用户自己通过右上角分享的时候,该隐藏域的src会自动变化,我理解为授权过程,之后invoke方法才能调用,但是这又有什么意义呢?
微信这次做的真绝啊,连指定分享链接和标题、说明都不给了。

微信6.0.2内置浏览器网页分享控制失效应急办法

标签:

原文地址:http://my.oschina.net/cxz001/blog/363809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!