react-native android11+ Linking 或 expo-linking canOpenUrl 查看是否安裝app

react-native 組件Linking 或 expo-linking 框架在android11+ 版本上使用 canOpenUrl(schemeName) 無法通過 Scheme Name 準(zhǔn)確查到移動設(shè)備上是否安裝某個app。

Linking 引入:

1,import * as Linking from 'expo-linking';

2,import { Linking } from 'react-native';

通過上述方式無法在安卓11+版本的設(shè)備上準(zhǔn)確查找是否安裝了某個App。

解決方案:

使用react-native-share 插件里的share接口來通過 packageName 來檢查是否安裝了某個 App。

import Share from 'react-native-share';

Share.isPackageInstalled(packageName)

? ? ? ? ? ? .then(({ isInstalled }) => {
? ? ? ? ? ? ? ? // 處理邏輯

????????????}).catch(() => Promise.resolve(false))

這里 packageName 就是目標(biāo)app的包名。

需要在當(dāng)前項目工程 android 目錄下 AndroidManifest.xml 里

添加 queries 白名單:

<manifest>

<queries>

? ? ? <package android:name="com.weixin.android" />

? </queries>

</manifest>

這樣就可以解決問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容