无法从Flutter应用中正确打开网址方案

时间:2019-01-05 13:02:28

标签: flutter

我有这个方案

"intent://reader/20667#Intent;scheme=marvelunlimited;package=com.marvel.unlimited;end" 

可以从我的android手机上的网络浏览器(chrome和firefox)轻松打开。

但是当我尝试从我的应用程序中打开它时,出现此错误消息:

[ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter (24461): Could not launch intent://reader/20667#Intent;scheme=marvelunlimited;package=com.marvel.unlimited;end

问题是奇迹API提供了“ inAppLink”网址方案,例如:

"inAppLink": "https://applink.marvel.com/issu/20480?utm_campaign=apiRef&utm_source=8d9925577b747f5266703258c321f5ba",

但这只是打开一个网页。

我在代码中使用它来打开它们:

_launchURL() async {
    var url = "intent://reader/20667#Intent;scheme=marvelunlimited;package=com.marvel.unlimited;end";
    if (await canLaunch(url)) {
      await launch(url);
    } else {
      throw 'Could not launch $url';
    }
  }

要从我的flutter应用程序中打开非凡的无限应用程序,我需要对以下任何URL /方案进行更改吗?

1 个答案:

答案 0 :(得分:1)

您可以使用android_intent plugin对其进行配置...这里是一个示例:

if (platform.isAndroid) {
    AndroidIntent intent = new AndroidIntent(
    action: 'action_view',
    data: 'https://play.google.com/store/apps/details?'
      'id=com.google.android.apps.myapp',
    arguments: {'authAccount': currentUserEmail},
    );
   await intent.launch();
}

只需将预期意图转换为这种格式,它就可以工作。 指定package: 'com.marvel.unlimited'直接进入应用。

祝你好运!

相关问题