【问题标题】:*React-Native* | Linking => canOpenURL(url) with unknown URL?*反应原生* |链接 => canOpenURL(url) 与未知 URL?
【发布时间】:2020-01-31 21:20:54
【问题描述】:

我有这段代码:

Linking.canOpenURL(url)
                    .then((supported) => {
                        if (!supported) {
                            console.log("Can't handle url: " + url);
                            return false;
                        } else {
                            return Linking.openURL(url);
                        }
                    })
                    .catch((err) => console.error('An error occurred', err));

我在文档中读到:

从 iOS 9 开始,您的应用需要提供 LSApplicationQueriesSchemes Info.plist 或 canOpenURL 中的键将始终返回 false。

因此有必要在 info.plist 中指定需要管理的方案。 问题是我不知道用户想要的 URL。 在我的代码上调用此 Linking.canOpenURL 方法的用户操作在这里,因为大多数时候,当您询问时会打开另一个应用程序对我的应用执行此操作。

我只想做:

用户调用该操作并希望打开安装在他手机上的应用程序。我收到了一个方案,我需要检查用户是否确实在他的手机上安装了该应用才能打开它。

他的手机上是否安装了该应用程序? (canOpenURL()) 但它可以是任何方案 Google、Twitter、Instagram、银行应用程序,这就是为什么我不知道方案,在 Info.plist 中有太多要添加的内容。

如果他的手机上有应用程序,看在上帝的份上打开它啊啊啊!

有什么想法吗?

【问题讨论】:

    标签: android ios react-native deep-linking


    【解决方案1】:

    React Native 链接不需要知道应用方案。您需要做的就是从您要打开的应用程序中找到深层链接,并将其作为 url 传递给 Linking 组件。如果安装了应用程序,它将自动在应用程序中打开链接。

    例如,直接在应用内打开instagram链接,需要调用这个urlinstagram://user?username=nike,安装后应用会自动打开。

    【讨论】:

      猜你喜欢
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 2018-09-27
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多