簡體   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