日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

flutter webview浏览器及与js交互、打开第三方app

發布時間:2023/12/10 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flutter webview浏览器及与js交互、打开第三方app 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

添加pubspec.yaml依賴

url_launcher: ^5.4.1

webview_flutter: ^0.3.18+1

?

--------------main.dart

import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:webview_flutter/webview_flutter.dart';void main() => runApp(MyApp());const String TITLE='whq_test';class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(title: TITLE,theme: ThemeData(primarySwatch: Colors.blue,),home: MyHomePage(title: TITLE),);} }class MyHomePage extends StatefulWidget {MyHomePage({Key key, this.title}) : super(key: key);final String title;@override_MyHomePageState createState() => _MyHomePageState(); }class _MyHomePageState extends State<MyHomePage> {String _title = TITLE;WebViewController _webViewController=null;@overridevoid initState() {super.initState();}void _openApp(openurl) async{// Androidprint("open app");final url = 'vnd.'+openurl;if (await canLaunch(url)) {await launch(url);} else {// Iosfinal url = openurl;if(await canLaunch(url)){await launch(url);}else{throw 'Could not launch $url';}}}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(_title),),body: WebView(initialUrl: "http://whqtest/app/test.html",javascriptMode: JavascriptMode.unrestricted,navigationDelegate: (NavigationRequest request){if (request.url.startsWith('js://webview')) {print('blocking navigation to $request}');_openApp(request.url.replaceAll("js://webview", "").replaceAll("?url=", ""));return NavigationDecision.prevent;}print('allowing navigation to $request');return NavigationDecision.navigate;},onWebViewCreated: (WebViewController webViewController){_webViewController=webViewController;},onPageFinished: (url){_webViewController.evaluateJavascript("document.title").then((result){String title = result.substring(1, result.length - 1);if (title.length > 0) {print(title);setState(() {_title = title;});}});},),);}@overridevoid dispose(){super.dispose();_webViewController=null;} }

————————test.html

hello world!<a href="https://www.baidu.com">百度</a><a href="js://webview?url=weixin://">微信</a>

?

總結

以上是生活随笔為你收集整理的flutter webview浏览器及与js交互、打开第三方app的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。