DCloud旗下的uni-app如何判斷是否安裝騰訊QQ微信微博支付寶淘寶客戶端

遇到的問題

最近,在用uni-app混合方式開發app,在做微信授權登錄的時候,要判斷手機裏面是否安裝有微信客戶端,如果沒有安裝提示用戶「未安裝微信客戶端或版本過低」。剛開始用uniapp,很多語法都不太熟悉,心想,這個這麼常用的判斷,隨便搜索引擎一搜不就有了。正所謂面向百度編程,沒有什麼能難倒程序員的。結果一搜就懵了,不信你搜搜看,「uniapp判斷是否安裝微信」,完全找不到想要的。我還是不死心,搜索引擎沒有,官網總會有吧。去官網找了一圈,還是沒有找到,心灰意冷。

解決方案

說實話,我也不記得是怎樣找到這個方法的,方法非常簡單,以下是官方介紹。如果需要看代碼示例,請關注公衆號longyoung,回覆「uni判斷微信」,即可獲取我寫的代碼片段截圖,有不明白的也可以在公衆號提問。

官方介紹(傳送門)

判斷第三方程序是否已存在

Boolean plus.runtime.isApplicationExist(appInf);

1.0說明:

如果第三方程序已安裝則返回true,未安裝則返回false。

1.1參數:

appInf: ( ApplicationInf ) 必選 要判斷第三方程序的描述信息

Android平臺需要通過設置appInf的pname屬性(包名)進行查詢。iOS平臺需要通過設置appInf的action屬性(Scheme)進行查詢,在iOS9以後需要添加白名單纔可查詢,在manifest.json文件plus->distribute->apple->urlschemewhitelist節點下添加(如urlschemewhitelist:["weixin"]).

1.2返回值:

Boolean : 第三方程序已安裝則返回true,否則返回false。

常用平臺

判斷其他應用是否安裝,可以用對應的pname和action來判斷。以下是一些常用平臺的pname和action。

平臺 pname action
微信 com.tencent.mm weixin://
QQ com.tencent.mobileqq mqq://
新浪微博 com.sina.weibo sinaweibo://
淘寶 com.taobao.taobao taobao://
支付寶 com.eg.android.AlipayGphone alipay://
京東 com.jingdong.app.mall openApp.jdMobile://
優酷 com.youku.phone youku://
高度地圖 com.autonavi.minimap iosamap://
百度地圖 com.baidu.BaiduMap baidumap://

PS:本文原創發於微信公衆號longyoung,關注並回復「51電子書」免費領取程序員必讀經典電子書。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章