Flutter url_launcher 插件抛出“java.lang.IllegalArgumentException:接收器未注册:io.flutter.plugins.urllauncher.WebViewActivity”

Sam*_*ord 7 plugins flutter url-launcher

我正在尝试使用 Flutter 的url_launcher插件来打开网页。

当我单击按钮 url_launcher 时,成功打开网页。但是,如果我随后通过向左滑动或使用软后退按钮导航回来,应用程序就会崩溃。日志说

java.lang.RuntimeException:无法销毁活动{uk.co.pottertour.map_edinburgh_guide_airbnb/io.flutter.plugins.urllauncher.WebViewActivity}:java.lang.IllegalArgumentException:接收器未注册:io.flutter.plugins.urllauncher.WebViewActivity$1 @8152196

它说 WebViewActivity 所以大概 Url_Launcher 没有打开外部浏览器,而是打开应用程序内的 Webview。

这非常关键,这个应用程序基本上是令人兴奋的事情的中心。

我怀疑是我的didChangeAppLifecycleState函数导致了错误,因为它是在恢复时发生的,但不是,这是在 Flutter 运行构建并重建屏幕时发生的。

我尝试注释掉我的构建过程中包含 url_launcher 链接的部分,相信重建触发了它,但这没有帮助。也许有一些后台异步进程会在应用程序绘制到屏幕之前引发此错误。与 url_launcher 相关。

Mat*_*ino 6

我遇到了同样的问题,如果您不想使用 url_launcher (https://pub.dev/packages/url_launcher#browser-vs-in-app-handling)进行应用内处理,我建议您使用此解决方案:

Future<void> _launchUrl(Uri url) async {
  if (!await launchUrl(url, mode: LaunchMode.externalApplication)) {
    throw Exception('Could not launch $url');
  }
}
Run Code Online (Sandbox Code Playgroud)

使用mode: LaunchMode.externalApplication该链接将在您的应用程序外部打开,并且当您导航回应用程序时应该不会有任何问题。


小智 3

此问题已在 url_launched_android 6.0.34 中修复。该问题已在https://github.com/flutter/flutter/issues/127014中跟踪