通过浏览器或外部应用在Flutter中打开应用的深层链接

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

我正在尝试在浏览器中打开我的应用程序的深层链接。深层链接是https://app.page.link/s345Fsfd2j形式的Firebase动态链接,使用launch(link)(来自url_launcher包)在其中link = https://app.page.link/s345Fsfd2j启动。我在Android清单中的<activity android:name=".MainActivity"中添加了以下意图。

  <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:scheme="https" />
    <data android:host="app.page.link" />
  </intent-filter>

该链接在浏览器上可以正常工作,但在我正在(Android)上测试的设备中无法打开。我也尝试在forceWebview中使用launch,但这也导致了URL incorrect scheme错误,因为Web视图上的链接不是http*,而是Android上的意图。打开深层链接的最佳做法是什么?

我还在网络安全配置中添加了一个新的子域,但尚未解决问题

<domain includeSubdomains="true">app.page.link</domain>
android ios flutter deep-linking firebase-dynamic-links
1个回答
0
投票

这正在我的机器上工作,如果不适合您,请告诉我。

import 'package:url_launcher/url_launcher.dart';

_launchURL() async {
    const url = 'https://app.page.link/s345Fsfd2j';
    if (await canLaunch(url)) {
      await launch(url);
    } else {
      throw 'Could not launch $url';
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.