在flutter開發安卓和ios時,我常用的webview插件是flutter_inappwebview ,它既能內嵌web頁,又能雙向通信還能開啟本地http服務。但flutter_inappwebview 卻不支持windows端。經過各種資料的查找,發現webview_windows插件可以實現相關功能。
可實現的功能:
1、在windows端flutter頁面中嵌入一個webview
2、webview前端頁與flutter雙向通信
使用方法
- flutter端調用web端,或注入js
flutter端:
///...
///基礎使用參考pub.dev
final _controller = WebviewController();
///...
///調用web端寫的ceshi函數,并傳入參數
_controller.executeScript("ceshi('參數')");
web端:
function ceshi(param){
console.log(param)
}
- flutter端發送消息至web端
flutter端(發送端):
_controller.postWebMessage(json.encode([1,2,3]));
web端(接收端):
window.chrome.webview.addEventListener('message',(e)=>{
console.log(e)
},false)
- web端發送消息至flutter端
flutter端(接收端):
_controller.webMessage.listen((event) {
print(event);
});
web端(發送端):
window.chrome.webview.postMessage('信息')