问题标签 [react-native-deep-linking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
481 浏览

react-native - React Native Web 中的 Expo 深度链接

尝试为 React Native Web 工作的深度链接。浏览了许多文章,最后找到了针对此链接中面临的确切问题提出的解决方案,该解决方案对我不起作用。

世博会文件说使用

并在 AppNavigator 中设置前缀。

想知道在使用单击链接时如何指向我的反应本机 Web 应用程序。问题是 Linking.makeUrl('/') 在我的笔记本电脑上返回 exp://localhost:19006/ 。由于浏览器无法识别 exp 作为方案无法打开我的 URL。

我尝试在 app.json 中将方案设置为 https,但 Linking.makeUrl('/') 仍将方案返回为 expo。

在我的应用程序中,当用户单击我在应用程序中加载的静态 html 页面时,我想路由回我的应用程序。由于我无法使用 Expo 获得正确的 React Native Web 方案,因此无法继续进行。

谢谢你。

附上链接中提供的代码。

0 投票
0 回答
174 浏览

deep-linking - 当安装了whatsapp和whatsapp业务应用程序时链接whatsapp业务的URL

我知道我们可以使用以下 url 从我的 react native 应用程序中打开 whatsapp

或者我们可以使用

当我只安装了一个whatsapp应用程序时,这很好用。现在除了whatsapp,我还安装了WhatsApp Business应用程序。但是因为在我安装了whatsapp业务之后,我上面的代码让我可以选择在whatsapp或whatsapp业务之间进行选择。

我不想从我的应用程序中选择,我想根据用户的选择直接在 whatsapp 或 whatsapp 业务中打开 url 中的电话号码聊天。

0 投票
0 回答
326 浏览

android - 将 URL 缩短为自定义 URI 方案深层链接

问题: 需要根据 react-native 应用程序中的深层链接打开应用程序的特定屏幕。

我已经实现了demo:://app/...作为 Android 的Andoridmanifest.xml和 iOS 的 info.plist 中的自定义方案。

当我使用demo:://app/screen/2对其进行测试时,它会深度链接到应用程序并打开应用程序的第二个屏幕。当应用程序从其他应用程序接收demo:://app/screen/2时,这种行为是预期的。

当我尝试使用tinyurl.com/y4qygctx而不是demo:://app/screen/2测试应用程序时,问题开始出现。

注意- tinyurl.com/y4qygctxdemo:://app/screen/2的缩写形式。

请根据您的经验提供解决方案。先感谢您 !!!

0 投票
0 回答
239 浏览

android - 在 reactnative 端点击小部件打开主页?【安卓平台】

在 react native 应用程序中,对于 android 平台创建小部件并点击它,我需要打开 HomePage。或者当我点击小部件时,我应该能够发送数据以响应从小部件应用程序打开的本机应用程序,因此通过这种方式在反应本机端能够打开主页。下面是我的小部件类代码,可通过点击小部件打开应用程序。小部件.java

}

小部件参考链接: https ://github.com/andrepimenta/react-native-create-widget-tutorial 任何解决参考的方法都会有帮助,提前谢谢!

0 投票
0 回答
239 浏览

react-native - 深度链接启动应用程序,但错误地处理外部 URL

我正在使用 React-Navigation v5 开发一个 React Native 项目。

我现在尝试实现深度链接功能。我按照官方说明成功设置了深度链接(我的意思是应用程序是通过自定义 url 方案启动的)。接下来我需要处理外部链接,我的问题就出现在这一点上。

为了在我的 react-native 项目中处理外部链接,我还遵循了configure links指令。

我在我的项目中定义了一个 linking.js:

然后,在我的 中NavigationContainer,我使用如下链接:

正如您在上面看到的,有三件事值得注意:

  1. 在 linking.js 中,config我指定路径 egfoo/123应该打开 screen FooScreen

  2. FooScreen是一个嵌套屏幕。

  3. NavigationContainer包含一个名为MainFlow.

为了说明如何FooScreen嵌套在导航层次结构中,让我们从 开始MainFlow,它看起来像这样:

如您所见,MainFlowDrawerNavigator承载了一个名为的屏幕,FeatureFlow指的是组件MyFeatureFlow

MyFeatureFlow看起来像这样:

正如您在上面看到的,FeatureFlow是一个堆栈导航器,它承载一个名为的屏幕SubfeatureFlow,指的是组件MySubfeatureFlow

MySubfeatureFlow就像:

正如您在上面看到的,MySubfeatureFlow是另一个堆栈导航器,它承载了一个名为FooScreen引用组件的屏幕MyFooScreen

现在你明白了为什么在 linking.js 配置中,FooScreen是这样嵌套的。

然后,我在 iOS 模拟器上运行我的应用程序。应用程序启动。我在模拟器上杀死了应用程序。

然后,我运行命令npx uri-scheme open myapp://mobile/foo/123 --ios。(我也试过打开手机浏览器,输入 url myapp://mobile/foo/123,错误如下)

我在模拟器上看到,该应用程序是由命令启动的,这意味着我的深层链接已设置。但是,处理打开的外部链接FooScreen失败,我最终得到以下错误:

在此处输入图像描述

该错误告诉我导航有效负载尝试将123其视为屏幕,而应用程序将foo其视为我项目中屏幕的名称。我完全不明白为什么会这样。我的链接配置有问题吗?

0 投票
0 回答
57 浏览

react-native - 行为反应本机链接

我的问题是关于 react-native 的链接:https ://reactnative.dev/docs/linking

我实现了这个功能,但我有一个我不想要的行为。

如果我的应用程序关闭,我单击一个链接并启动我的应用程序。但是在检测到链接之前,我的应用程序正常启动,并且在该方法检测到链接之后,Linking.getInitialURL()重定向完成。我发现这种行为很奇怪,因为应用程序像正常启动一样启动,并且在延迟后检测到链接并执行重定向。用户在重定向之前看到开始无用的屏幕。

此外,如果使用 url 的重定向比通常的重定向更快,这将是一个问题。我们看到首先使用 url 进行重定向,并在打开应用程序的重定向之后。因此用户无法访问链接重定向。

我不知道如何正确解决这个问题。

在此处输入图像描述

0 投票
1 回答
108 浏览

react-native - 深度链接在 android React Native 上没有任何作用

我正在尝试在 React Native 中实现深度链接功能,我遵循了 React Native 的官方文档,也遵循了React Navigation的文档。我已经更改了我的 AndroidManifest.xml 文件并根据文档添加了意图过滤器,如下所示:

还将 android:lunchMode 更改为android:launchMode="singleTask".

当我使用安装应用程序npx react-native android并且应用程序成功安装在用户设备上时。之后我运行 adb 命令来检查深度链接,我得到以下响应:

这是我的链接配置:

我正在使用 React Navigation V5,我在 NavigatorContainer 的 App.js 中使用链接,这里要提到的重要一点是,我正在使用React Navigation的官方文档使用身份验证流程,并且聊天嵌套在导航器中,但我也尝试访问 demo://app 并且 adb shell 返回与上面相同的响应。

0 投票
2 回答
877 浏览

react-native - React native expo 应用程序:深度链接回应用程序

我是 react native 初学者,我使用最新版本的 react-native 和 expo 创建了应用程序。该应用程序在 iPhone 和 android 上expo go启动,我可以通过单击按钮启动网络浏览器。网络浏览器显示我公司的登录页面,成功登录后,用户应在特定屏幕上重定向到应用程序,其中包含我需要在我的应用程序中继续的值(下面的代码片段中的值“myCode”)。

但深度链接实际上打开了我的应用程序的一个新实例(从 expo 服务器再次下载捆绑包),而不是仅仅将已经运行的应用程序带到前台。然后当我再次启动登录过程时,深层链接会打开我的应用程序而无需再次下载应用程序,但是当我尝试处理重定向时立即崩溃,但出现以下异常:“找不到变量:常量”。我真的不明白这个错误,想得到帮助。如果您知道如何在 react-native 中使用链接,您可能可以帮助我。

我尝试了这些深层链接。从我的公司登录页面调用它们以将用户发送回应用程序:

即使在用户第一次完成登录时没有再次下载捆绑包,本地主机链接也能正常工作。但它仍然因同样的警告而崩溃。

这是我用来处理重定向回应用程序的代码:

在用户登录函数_handleRedirect被调用后,我看到了第一个警报, alert("handle redirect") 但随后它崩溃了Can't find variable: Constants

代码基本上取自这里: https ://github.com/expo/examples/blob/master/with-webbrowser-redirect/App.js

0 投票
0 回答
48 浏览

react-native-android - 链接网址未清除

我正在研究深度链接,我集成了链接并创建了深度链接。它工作正常,但是当我单击返回按钮时,页面重定向到上一个屏幕,突然它重定向到聊天页面,当我回来时无法清除 URL。

0 投票
0 回答
632 浏览

android - React Native Deep Linking - 为所有 URL 打开 Android 应用程序(对于配置的域)

我们将原生 Android 应用程序转换为 React 原生应用程序,并为新应用程序使用 expo 托管工作流。对于深度链接,我们使用了来自 expo 的链接文档,一切正常。但最近我们注意到对于某些用户(特别是三星设备),Android 应用程序正在为所有 URL 开放(对于配置的域)。

意图过滤器设置:

即使在世博会裸工作流中的世博会弹出后,上述问题仍然存在。

弹出后 Android Menifest 看起来像这样。