話不多說,直接來。
一、web-view 組件跳轉到目標公眾號【未成功】
相關官方文檔:web-view 官方文檔
要求:個人類型、海外類型不支持
問題:在測試時,iOS可以顯示公眾號信息(后來也不行了);
而部分Android不能顯示,而是提示:非法的業務域 https://mp.weixin.qq.com,此為服務器驗證問題。
代碼:
<web-view src="https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU*****ODk0Mg==#wechat_redirect"></web-view>
說明:
①其中 __biz=后邊字符串(即標紅部分,展示時部分字符替換為*)為 關聯公眾號的唯一ID進行Base64加密得到的。
②還有一點是關於 #wechat_redirect 的說明:web-view 地址如果本身已利用 #xxx/xxx 分路由,在后面再加上 #wechat_redirect ,ios 會出現空白,打不開的現象。微信小程序的bug。
而公眾號的唯一ID的獲取過程如下:
方式一:微信公眾平台首頁右上角公眾號頭像名稱信息下來菜單中點擊“賬號詳情”,進入“公眾號號設置-賬號詳情”頁面。
方式二:公眾平台首頁-左側菜單-設置-公眾號設置,進入“賬號詳情”頁面。
在“賬號詳情”頁面查看頁面源代碼,找到window.wx對象的uin屬性。uin屬性中 邏輯或運算符前的字符串便是我們要的唯一ID。將它進行Base64轉碼即為我們所需。
那既然不能關注公眾號,這個web-view有什么用?
實際上它提供了小程序中跳轉到其他外部頁面的可能,但是這個頁面要在小程序的后台配置的“業務域名”之下。
另外,web-view的一個重要作用是:可以是可打開關聯的公眾號的文章! 只需要將src設置為關聯公眾號文章的鏈接地址即可。【這個是沒有任何問題的】
例如:
<web-view src="https://mp.weixin.qq.com/s/JprPAFS*****h5sSIWtw"></web-view> <!-- 碼掉了部分代碼-->
效果:
原本想通過鏈接到關聯公眾號的文章,點擊文章標題下的公眾號名稱(上圖紅框內容)的方式實現,發現在小程序中鏈接到公眾號文章時公眾號名稱由正常文章中的藍色(可點擊)變為灰色(不可點擊)。很顯然,微信不希望我們通過這種方式來關注公眾號。
二、 公眾號關注組件 official-account 【成功,但受限】
官方文檔:公眾號關注組件
限制:有限的場景下可以(詳細場景可查看官方文檔)。
要求:使用組件前,需前往小程序后台,在“設置”->“關注公眾號”中設置要展示的公眾號。注:設置的公眾號需與小程序主體一致。
代碼示例(在需要顯示公眾號的頁面內添加,每個頁面只能有一個):
<!-- 關注公眾號組件 --> <official-account></official-account> <!-- 省略其他業務代碼 -->
結果展示:
點擊“關注按鈕”便可實現公眾號的關注。
實測有效,唯一的問題是場景有限,很難滿足業務需求。
三、利用“客服消息”方式
暫未嘗試,待完善。不過有不少成功案例可以參考。
寫在后頭【重要】:
需要指出的是,根據《微信小程序平台運營規范》,微信小程序提供的服務中,不得存在誘導類行為。也就是說,未經騰訊許可或授權,在小程序中進行誘導用戶關注公眾號的行為。有可能會被微信封禁客服消息推送能力。嚴重地可能會關停小程序。因此,需要謹慎地使用此功能。
通過公眾號關注頁鏈接方式關注公眾號,在微信的開發文檔中,並沒有找到相關記錄。
即便是公眾號關注組件這種親生的都會有很多限制,其他方式就可想而知了。