Closed khjde1207 closed 2 years ago
import 'package:android_window/android_window.dart'; import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; class AndroidWindowApp extends StatelessWidget { const AndroidWindowApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return const MaterialApp( home: HomePage(), debugShowCheckedModeBanner: false, ); } } class HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return AndroidWindow( child: Scaffold( backgroundColor: Colors.lightGreen.withOpacity(0.9), body: Padding( padding: EdgeInsets.all(8), child: ElevatedButton( onPressed: () { print("onPressed"); launch("https://github.com/"); }, child: Text("test open")), ), ), ); } }
错误信息 :
E/flutter (30934): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(NO_ACTIVITY, Launching a URL requires a foreground activity., null, null) E/flutter (30934): #0 StandardMethodCodec.decodeEnvelope package:flutter/…/services/message_codecs.dart:607 E/flutter (30934): #1 MethodChannel._invokeMethod package:flutter/…/services/platform_channel.dart:156 E/flutter (30934): <asynchronous suspension> E/flutter (30934): #2 launch package:url_launcher/url_launcher.dart:99 E/flutter (30934): <asynchronous suspension> E/flutter (30934):
有什么办法吗?
看起来没办法直接在浮窗里直接使用 url_launcher,因为浮窗是以 service 运行的而不是 activity,这是 android 的限制。你可以 post 消息到 main app,从 main app 调用 url_launcher,当然,是在 main app 还在运行的情况下。
谢谢
错误信息 :
有什么办法吗?