微信內(nèi)置瀏覽器關(guān)注微信好友實踐
作者:佚名
在微信公眾賬號發(fā)布的圖文信息中的原文鏈接中可以插入一段代碼,通過這段代碼可以實現(xiàn)關(guān)注其他的微信公眾賬號,是不是很神奇呢?不過這么做與微信官方的政策相抵觸,請謹(jǐn)慎使用。
- //通過關(guān)注微信好友
- function WeiXinAddContact(wxid)
- {
- if (typeof WeixinJSBridge == 'undefined') return false;
- WeixinJSBridge.invoke('addContact', {
- webtype: '1',
- username: wxid
- }, function(d) {
- // 返回d.err_msg取值,d還有一個屬性是err_desc
- // add_contact:cancel 用戶取消
- // add_contact:fail 關(guān)注失敗
- // add_contact:ok 關(guān)注成功
- // add_contact:added 已經(jīng)關(guān)注
- // WeixinJSBridge.log(d.err_msg);
- });
- };
- //通過微信分享
- function WeiXinShareBtn() {
- if (typeof WeixinJSBridge == "undefined") {
- alert("請先通過微信xxxx");
- } else {
- WeixinJSBridge.invoke('shareTimeline', {
- "title": "xxx",
- "link": "http://www.xxx.com",
- "desc": "關(guān)注xxx",
- "img_url": "http://www.xxx.com/xxx.png"
- });
- }
- }
- 上面的代碼目前在微信內(nèi)置瀏覽器才有效果
- WeiXinAddContact中的微信wxid需要 微信的原始id,為什么呢?
例如美食行的微信id:meishixing,原始id:gh_6cc3b345c2f2,
在iphone版本的微信中使用兩種id都能完成正常的關(guān)注,但是在android版本的微信meishixing這個無法返回一直停留在“正在關(guān)注。。。”,修改成id:gh_6cc3b345c2f2,就正常了。這個問題找來好久。。。 - 如果用戶希望用戶在打開頁面的時候,直接能彈出關(guān)注的對話框
- //init
- function r(f){(typeof WeixinJSBridge == 'undefined'||(typeof WeixinJSBridge.invoke == 'undefined'))?setTimeout('r('+f+')',200):f()}
- r(function(){
- WeiXinAddContact("gh_6cc3b345c2f2");
- });
微信內(nèi)置瀏覽器會有WeixinJSBridge,但是需要一定的加載時間,WeixinJSBridge 有了之后 WeixinJSBridge.invoke也不一定有,所有看到r這個函數(shù)了把。。。(ps:每次打開都彈多不好意思阿,所以需要通過cookie來控 制,WeiXinAddContact回調(diào)狀態(tài)來設(shè)置cookie和通過cookie判斷是否要執(zhí)行init的部分的r)
責(zé)任編輯:徐川
來源:
cnblogs