React Native 中的深层链接

问题描述 投票:0回答:1

我正在尝试实现一个邀请功能,用户可以创建邀请链接,打开链接时其他用户将被添加到朋友列表中。 这是一个邀请链接,如下所示:https://myapp_domain/UNIQUE_CODE

问题:我无法在自己的设备(Android)上打开链接,尽管我可以使用以下命令在模拟器中打开链接:

adb shell am start -W -a android.intent.action.VIEW -d "http://dev.0xfire.com/ABC" 
。它在浏览器中重定向我,仅此而已。根本没有重定向到应用程序。同样,当我在 Android 模拟器中打开链接时,它会将我重定向到浏览器。只是命令按预期工作

对于此任务,人们通常使用 Firebase 动态链接,但它将于 8 月被弃用。

我做了什么:

  1. AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.socialapp">
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme">
    <activity android:name=".MainActivity" android:exported="true">
      <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
     <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
        <data android:host="dev.0xfire.com"/>
    </intent-filter>
    </activity>
  </application>
</manifest>
  1. assetlinks.json

我在我的nodejs REST API /.well-known/assetlinks.json 中创建了一条路由,如下所示https://dev.0xfire.com/.well-known/assetlinks.json。 SHA 256 证书是使用我计算机上 .android 文件夹中的密钥生成的。我相信这可能是问题所在,但不知道在哪里获取证书的可信密钥。https://developer.android.com/training/app-links/verify-android-applinks#web-assoc

附加信息

我在模拟器中使用 Android 11 (R)。 该应用程序尚未发布。 https://dev.0xfire.com/ 是邀请域,也是我访问 REST API 的域。 我的域未配置 www。

react-native deep-linking android-deep-link react-native-deep-linking
1个回答
0
投票

我检查了你的assetlinks.json(https://dev.0xfire.com/.well-known/assetlinks.json),我发现你的sha256_cert_fingerprints没有设置。如果您想知道您的 sha256_cert_fingerprints,您可以将 keystore/jks 文件放在 android/app 文件夹中,然后放在命令行中(同一文件夹):

keytool -list -v -keystore ********.keystore

放置密钥库的文件名而不是*******

然后代码将在证书指纹 SHA256 中显示给您

© www.soinside.com 2019 - 2024. All rights reserved.