gpt4 book ai didi

android - 在 React Native 上定位 android 30 sdk 时,Linking.canOpenURL 返回 false

转载 作者:行者123 更新时间:2023-12-04 02:30:14 25 4
gpt4 key购买 nike

最近将我们的构建目标切换到 android 30 以添加对 Android 11 的支持,现在方向和电话调用不起作用。
该文档提到 native 深度链接和/或使用 npm 包。
这会在本地完成吗?还是包是一个选项?
https://reactnative.dev/docs/linking
在运行 android 30 时检查是否支持 Linking.canOpenURL 现在返回 false。

Linking.canOpenURL(url)
.then((supported: boolean) => (supported ? Linking.openURL(url) : Alert.alert("Error", "There was an error attempting to opening the location.")))
.catch(() => Alert.alert("Error", "There was an error attempting to opening the location."));

最佳答案

答案在于新的 Android 安全功能:Package Visibility .这与 iOS 的 LSApplicationQueriesSchemes 类似。 .
面向 Android 11 (SDK 30) 需要您更新 AndroidManifest.xml并包含您要查询的应用程序列表。例如。这是我用来在我自己的应用程序中检查谷歌地图导航的代码。它还包括 HTTP 和 HTTPS 的权限:

<manifest package="com.example.game">
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="google.navigation" />
</intent>
</queries>
...
</manifest>
对于 applications matching certain criterias (例如防病毒应用程序、文件管理器或浏览器)您可以使用 QUERY_ALL_PACKAGES permission允许查询任何类似于早期 Android 版本的随机包:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
但是,请注意您的应用程序 将被拒绝如果您不符合下列任何应用类型或使用 QUERY_ALL_PACKAGES 的条件,则来自 Google Play以未经授权的方式:

Permitted use involves apps that must discover any and all installed apps on the device, for awareness or interoperability purposes may have eligibility for the permission. Permitted use includes device search, antivirus apps, file managers, and browsers. Apps granted access to this permission must comply with the User Data policies, including the Prominent Disclosure and Consent requirements, and may not extend its use to undisclosed or invalid purposes.


Use of the broad package (App) visibility (QUERY_ALL_PACKAGES) permission

关于android - 在 React Native 上定位 android 30 sdk 时,Linking.canOpenURL 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64699801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com