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電子書」免費領取程序員必讀經典電子書。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM