Flutter Android 应用程序无法通过应用程序链接打开

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

我正在尝试使用 App Links 从 URL 启动 Flutter 制作的 Android 应用程序。 我尝试了以下操作,但应用程序未打开,仅打开网页。我尝试直接在搜索字段中输入网址,然后从带有标签的按钮跳转,但结果是一样的。

AndroidManifest.xml(将
<example.com>
更改为我的自定义域)

            <meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
            <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="http" android:host="<example.com>" />
                <data android:scheme="https" />
            </intent-filter>

获取SHA256

$ keytool -list -v -keystore android/app/key.jks
/.well-known 中的

assetlinks.json(更改
<My SHA256>

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app1",
      "sha256_cert_fingerprints":
        ["<My SHA256>"]
    }
  }
]
android flutter deep-linking applinks
1个回答
0
投票

1.确保在 assetlinks.json 文件中声明调试和发布 sha256 密钥。这是一件重要的事情,因为应用程序可以在调试或发布模式下工作,而这两个密钥都需要被识别

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app1",
      "sha256_cert_fingerprints": [
        "<debug key>",
        "<release key>"
      ]
    }
  }
]

2.不应将http和https组合在同一个意图过滤器中,而应该将它们分开。

<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="http" />
    <data android:host="example.com" />
</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="example.com" />
</intent-filter>

完成这些更改后,尝试从该网址再次启动应用程序

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