繁体   English   中英

Firebase 与 flutter 动态链接:深层链接 URL 未打开应用程序

[英]Firebase dynamic link with flutter: Deep link URL doesnt open app

我尝试向我的 flutter android 应用程序(未发布)添加动态链接,该应用程序处于调试模式并在物理设备中运行。 配置firebase,firebase控制台中的动态链接。 一切都按预期工作,除了一个。 当从没有打开应用程序的任何地方直接单击深度链接( https://www.mywebsite.com/deep-link-page )时。 单击动态链接https://myapp.page.link按预期打开应用程序。

 final DynamicLinkParameters parameters = DynamicLinkParameters(
  uriPrefix: 'https://freshakaka.page.link',
  link: Uri.parse('https://freshakaka.page.link/helloworld'),
  androidParameters: AndroidParameters(
    packageName: 'com.freshakaka.flutter',
    minimumVersion: 0,
  ),
  dynamicLinkParametersOptions: DynamicLinkParametersOptions(
    shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
  ),
  iosParameters: IosParameters(
    bundleId: 'com.google.FirebaseCppDynamicLinksTestApp.dev',
    minimumVersion: '0',
  ),
);

在此处输入图像描述

正如您在图片中看到的 - https://kannadaclub.com/2019/10/17/seltos-50k-bookings/是我的深层链接。 当从手机点击此链接时,它总是打开网站,而不是应用程序。

您需要在清单中的第一个打开活动中添加此intent-filter

<activity android:name="your default activity">
      
        <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:host="freshakaka.page.link"
                android:scheme="https" />
        </intent-filter>

    </activity>

详细说明:

你需要在你的项目中搜索AndroidManifest.xml找到它,你会看到类似这样的东西

   <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

这是第一个打开的 Activity,因为它具有包含LAUNCHER类别的intent-filter ,这意味着您的应用将从该 Activity 开始,因此您需要添加我上面提供的intent-filter ,如下所示

       <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </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:host="freshakaka.page.link"
                android:scheme="https" />
        </intent-filter>

    </activity>

此外,您可以查看更明确的解释

https://firebase.google.com/docs/dynamic-links/android/receive

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM