【问题标题】:Deeplink created using ionic and capacitor is not working使用离子和电容器创建的深层链接不起作用
【发布时间】:2021-12-08 10:35:11
【问题描述】:

AndroidManifest.xml

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">

    <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:name="io.ionic.starter.MainActivity" android:label="@string/title_activity_main" android:theme="@style/AppTheme.NoActionBarLaunch" android:launchMode="singleTask">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter android:label="DeepLink" 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" android:host="fundcore-testapp.azurewebsites.net" />
        </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="https" android:host="fundcore-testapp.azurewebsites.net" />
        </intent-filter>

    </activity>

    <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
        <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
    </provider>
</application>

<!-- Permissions -->

<uses-permission android:name="android.permission.INTERNET" />

assetlinks.json

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target" : { "namespace": "android_app", "package_name": "com.beyond.app",
               "sha256_cert_fingerprints": ["my key"] }
}]

我已将assetlinks.json 部署到https 网站。我在 codepen 上创建了一个指向页面的锚标记,即 https 站点。当我在移动设备上打开 codepen 并单击锚标记时,它不会打开我的应用程序

【问题讨论】:

  • 只要删除重复的intent-filter,不管它有什么好处。
  • 我删除了它。但它仍然无法正常工作

标签: android ionic-framework deep-linking capacitor android-deep-link


【解决方案1】:

我检查了你的链接https://fundcore-testapp.azurewebsites.net/.well-known/assetlinks.json 返回的信息是正确的,我会排除配置问题,就像在 cmets 中发生的那样,删除无用的意图并不管它

<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" android:host="fundcore-testapp.azurewebsites.net" />
</intent-filter>

此外,如果您发布与电容器相关的代码也会对您有所帮助,如果您使用 Angular 请注意使用来自“@angular/core”的 NgZone,如文档 https://capacitorjs.com/docs/guides/deep-links 中所述用于管理收到的 url。虽然很明显,还要检查 build.gradle 文件中的“applicationId”,它与assetlinks.json 中指定的匹配,并根据您使用的内容将@capacitor/app 更新为可用的最新版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2018-04-11
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多