首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React本机深层链接在实际设备上不起作用

React本机深层链接在实际设备上不起作用
EN

Stack Overflow用户
提问于 2021-12-10 23:10:51
回答 2查看 8.1K关注 0票数 1

我使用uri-方案进行环境设置和测试,并按照反应导航医生中的步骤设置导航。当我用npx uri-scheme open myapp://do_something/some_params --{android/ios}在模拟器上测试时,一切看起来都很好。当应用程序运行前景、背景或关闭时,它就能工作。然而,当我试用我的手机时,什么都没有发生。

我试着点击电子邮件中的链接,什么都不会发生。在浏览器地址栏中,我尝试输入uri myapp://do_something/some_params。浏览器仍然在主页上,没有“打开的myapp”弹出。

AndroidManifest.xml:

代码语言:javascript
复制
...
   <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
      <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="myapp"/>
      </intent-filter>
    </activity>
...

Info.plist:

代码语言:javascript
复制
...
        <array>
            <dict>
                <key>CFBundleURLSchemes</key>
                <array>
                    <string>myapp</string>
                </array>
            </dict>
        </array>
...

附件代表:

代码语言:javascript
复制
#import <React/RCTLinkingManager.h>

...
- (BOOL)application:(UIApplication *)application
   openURL:(NSURL *)url
   options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [RCTLinkingManager application:application openURL:url options:options];
}
...

App.js:

代码语言:javascript
复制
const deepLinkingConfig = {
  prefixes: ['myapp://'],
  config: {
    screens: {
      HOME: {
        screens: {
          SOMESCREEN: 'do_something/:some_params',
        }
      }
    },
  },
}
...
<NavigationContainer linking={deepLinkingConfig}>
    ...
<NavigationContainer />
...

我没发现出什么问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-10 23:43:17

在为应用程序提供真正的http模式之前,它是不可点击的。

您必须配置通用链接,请参见此处:响应本机url深链接(如YouTube )

iOS:https://www.raywenderlich.com/6080-universal-links-make-the-connection

安卓:https://developer.android.com/training/app-links

还请看一下Firebase动态链接:BwE&gclsrc=aw.ds

票数 1
EN

Stack Overflow用户

发布于 2021-12-10 23:34:49

您应该创建一个包含链接的小示例HTML页面,并在浏览器中打开此页面。如果将链接输入浏览器,只需单击链接即可调用深度链接。另外,并不是所有的应用程序(比如你的邮件客户端)都支持深度链接。此外,您应该首先从配置开始您的应用程序,然后给系统一点时间(最多一分钟)来注册更改。如果没有工作,尝试卸载和重新安装。不幸的是,脱墨有一些缺点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70311314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档