微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用特定的URL深度链接打开Flutter应用

如何解决使用特定的URL深度链接打开Flutter应用

我刚刚使用Flutter框架开发了一个电子商务应用程序,我试图共享任何产品的特定URL,以便客户可以使用共享URL在应用程序中打开此产品详细信息屏幕。 我已经使用uni_links包来处理此链接,但是我不知道出了什么问题,因为当我在浏览器中打开URL时应用程序无法打开,这是我使用的代码。 / p>

1- AndroidManifest.xml

<application
    android:name="io.Flutter.app.FlutterApplication"
    android:label="ecards"
    android:icon="@mipmap/ic_launcher">
   
    <activity
        android:name=".MainActivity"
        android:launchMode="singletop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <Meta-data
          android:name="io.Flutter.embedding.android.normalTheme"
          android:resource="@style/normalTheme"
          />
        <Meta-data
          android:name="io.Flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/launch_background"
          />
        <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:scheme="unilinks"
      android:host="example.com" />
  </intent-filter>
    </activity>
    <!-- Don't delete the Meta-data below.
         This is used by the Flutter tool to generate GeneratedpluginRegistrant.java -->
    <Meta-data
        android:name="FlutterEmbedding"
        android:value="2" />
</application>

2-用于处理URL的uni_links代码

导入'dart:async'; 导入'package:uni_links / uni_links.dart';

StreamSubscription _sub;

Future<Null> initUniLinks() async {
  _sub = getLinksstream().listen((String link) {
    print(link);
  },onError: (err) {
    print(err);
  });
}

3- Flutter项目中的主文件

  void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await initUniLinks();
  await translator.init(
    localeDefault: LocalizationDefaultType.device,languagesList: <String>['ar','en'],assetsDirectory: 'assets/langs/',);

注意:我正在使用小米mi 9t来测试应用程序

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。