我正在尝试实现一个邀请功能,用户可以创建邀请链接,打开链接时其他用户将被添加到朋友列表中。 这是一个邀请链接,如下所示: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 月被弃用。
我做了什么:
<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>
我在我的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。
我检查了你的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 中显示给您