所以我一直在为我的php代码做一个webview项目,问题是,我在应用程序中有一些重定向,比如电子邮件,电话和其他。
问题是它没有看到工作一直试图使用url_launcher,但即使有这个和一个代码,似乎是正确的,我仍然得到错误net::ERR_UNKNOWN_URL_SCHEME
。
我已经看到这个主题Flutter Webview - Opening External Links in Browser or Window,但大多数是不推荐的,新的文档不适合webview
无论如何,这是我的代码的一部分,应该使它的工作class MyNavigationDelegate extends NavigationDelegate {
Future<Object> shouldOverrideUrlLoading(
WebViewController controller, NavigationRequest navigation) async {
var uri = Uri.parse(navigation.url);
if (uri.scheme == 'mailto') {
final email = uri.path.substring(1);
final mailtoUrl = 'mailto:$email';
await launchUrl(Uri.parse(mailtoUrl));
return NavigationDecision.prevent;
} else if (uri.scheme == 'tel') {
您的文本``final tel = uri.path.substring(1);
final telUrl = 'tel:$tel';
await launchUrl(Uri.parse(telUrl));
return NavigationDecision.prevent;
}``
// Add additional handling for other schemes or allow loadingreturn false;
}
``}``
class _MyHomePageState extends State<MyHomePage> {late final WebViewController controller;
``@override
void initState() {
controller = WebViewController();
controller.setJavaScriptMode(JavaScriptMode.unrestricted);
controller.setNavigationDelegate(MyNavigationDelegate());
controller.loadRequest(Uri.parse(" my url "));
addFileSelectionListener();
super.initState();
}\
1条答案
按热度按时间raogr8fs1#
你错误地格式化代码块,重新张贴的代码与正确的格式