關於微信js分享接口的一些使用心得

雖然微信官方開放了js-sdk,可是在某些老版本的微信上存在兼容性問題,好比在安卓微信6.0.1版本上分享接口就沒法使用,官方給出的解決方案就是升級微信。這不坑爹呢!我又不能強制個人用戶去升級微信版本,總不能就拋棄他們吧?因此咱們須要:php

###破解版js接口 點擊查看項目 該接口爲一大牛 @Alienfe 所作,當時在微信屏蔽私有接口的狀況下,這個js庫幫了大忙,破解了微信的限制,使得咱們可以繼續使用私有接口。可是在最新微信6.1版本,該庫已經失效。html

###官方sdk 既然官方提供了接口,咱們之後確定是切換到上面的,代碼重構少不了的,該接口的開發文檔在這裏:  官方js-sdk文檔 說實話,該文檔雖然功能強大,可是配置麻煩,須要請求受權後拿到受權碼放到前端js裏,簡直蛋疼無比,並且不知道未認證的公衆號可否使用。前端

這裏就不詳細介紹兩個接口的使用方法了,這裏主要說明一下如何合理使用兩個接口,前面說過了,破解版js接口在6.1以上無效,而官方接口在低版本上存在兼容性問題,因此這裏咱們須要同時使用兩個接口,以保證全部微信用戶都可以正常分享。git

那麼,個人策略是:github

1.微信版本<6.0.2 使用破解版接口 2.微信版本>=6.0.2 使用官方sdk後端

就以個人PHP項目爲例,在後端,我經過 userAgent 提取微信版本號:微信

//判斷微信版本是否高於6.0.2,低版本用舊接口,高版本用jssdk
    preg_match('/MicroMessenger\/(.*?)[^\d\.]/',$_SERVER['HTTP_USER_AGENT'],$m);
    if (version_compare($m[1], '6.0.2') == 1) {
        $this->assign('wxHighVersion',true);
    } else {
        $this->assign('wxHighVersion',false);
    }

wxHighVersion 是綁定到視圖模板的變量名,以便咱們在模板決定用哪一個接口。模板部分:this

<script>
    //自定義分享參數
    var wxData = {
        "imgUrl": "",//圖片
        "link": "",//分享連接
        "title": "",//定義分享標題
        "desc":""
    };
</script>
<?php if(!$wxHighVersion): ?>
<script src="/js/WeixinApi.js"></script>
<script>
    //使用破解版接口
</script>
<?php else: ?>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
    //使用官方接口
</script>
<?php endif; ?>

這樣,我就實現了全版本兼容,只是重構代碼須要細心+耐心。code

相關文章
相關標籤/搜索