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