提问人:Tyla Evans 提问时间:11/17/2023 更新时间:11/17/2023 访问量:20
React Native 应用程序无法在 Android 上正确打开指向 Google Docs 的网络链接
React Native app unable to correctly open web links to Google Docs on Android
问:
我正在开发一个React Native应用程序,该应用程序将包含指向许多不同网站的链接。用户应该能够单击该链接并被带到正确的位置。但是,目前指向 Google Docs 的链接在 Android 上无法正常工作(尚未在 iOS 上进行测试)。当用户单击其中一个链接时,它会显示错误。如果他们尝试通过文档应用打开它,则会显示错误“文档查找失败。文档可能已被删除。如果他们尝试通过 Chrome 打开它,它会说“抱歉,您请求的文件不存在。重要的是,如果您获取链接 URL 并将其粘贴到 Chrome 搜索栏中,它会正确显示文档。
这是我进行链接的方式:
import { Linking } from 'react-native';
const onPress = async () => {
let link = url.toLowerCase();
if (!/^https?:\/\//.test(link) && !/^mailto:/.test(link)) {
link = `https://${link}`;
}
Linking.openURL(link);
};
Android Manifest.xml 包含以下内容:
<manifest ...>
...
<uses-permission android:name="android.permission.INTERNET" />
...
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http"/>
</intent>
</queries>
</manifest>
版本信息:
react-native: 0.66.5 (yes, I know I need to upgrade, but I'm not sure if it will fix this issue)
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
我已经检查了应用程序尝试打开的链接是否正确。我也尝试浏览了 react-native 链接文档和 Android 文档,但我已经遵循了 react-native 链接文档中的所有相关说明,在我看来,Android 文档主要关注传入的深度链接,而不是传出的深度链接。
答:
0赞
Tyla Evans
11/17/2023
#1
好吧,我在发布后不到 24 小时就回答了我自己的问题。编码时很容易错过最明显的解决方案。
这里的问题是,在尝试打开它之前,我将整个 URL 设为小写。我最初添加这部分代码是因为我想使方案小写,并且我忘记了某些 URL 会同时具有小写和大写字母的标识符,因此将整个 URL 设置为小写会更改标识符。
修改此代码以使方案仅小写后,我能够正确打开 Google Docs 链接。
评论