我正在尝试在 Flutter Android 应用程序上使用 Deep link(带有 uni_links 插件)。
AndroidManifest 文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:label="concrete_sensors"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- !Deep Links -->
<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" />
<!-- Accepts URIs that begin with YOUR_SCHEME://YOUR_HOST -->
<data
android:scheme="https"
android:host="cloud.appwrite.io" />
</intent-filter>
<!-- !Deep Links -->
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>
我在 AndroidManifest 文件中做错了什么?
仅当我手动打开“设置/应用程序/默认打开/在手机上打开支持的链接”时,该应用程序才会通过链接“https://cloud.appwrite.io/....”打开。
assetlinks.json
文件声明网站关联。它应该看起来像这样:
[
{
"relation":[
"delegate_permission/common.handle_all_urls"
],
"target":{
"namespace":"android_app",
"package_name":"com.yourdomain.app",
"sha256_cert_fingerprints":[
"02:92:17:0B:01:37:....",
"AD:5A:21:98:D0:97:...."
]
}
},
]
要查找您的应用程序的 sha256 指纹,请转到 Google Play 控制台,选择相关应用程序,然后在左侧边栏的设置下选择应用程序签名。查找名为“数字资产链接 JSON”的部分。将 assetlinks.json 文件保持最新将允许在 Play 商店的所有安装中从您的 Web 应用程序进行深度链接。
如果您正在调试,则需要按照您提到的步骤进行操作(转到应用程序设置 > 设置为默认值 > 支持的网址并在深层链接主机上切换)或添加特定于您的开发环境的 sha256。
请参阅
https://developer.android.com/training/app-links/verify-android-applinks#web-assoc了解更多详细信息