flutter js交互传参
加载网页的webView
WebView(initialUrl:'http://test/h5atui//#/mobileMaps?lng=${CommonConfig.lng}&lat=${CommonConfig.lat}',javascriptMode: JavascriptMode.unrestricted,onWebViewCreated: (controller) {_webViewController = controller;},onProgress: (process){setState(() {_processPercent = process / 100;});},onPageFinished: (url) {},javascriptChannels: <JavascriptChannel>[_postUpGo(),_positioningGo(),].toSet(),)
1.js传参给移动端
_postUpGo() {return JavascriptChannel(name: 'postUpGo',onMessageReceived: (JavascriptMessage message) {dynamic value = json.decode(message.message);print('value= $value');var itemType = value['itemType'];var itemId = value['itemId'];var type = value['type'];var wantType = value['wantType'];///根据获取的参数做跳转之类的相应操作});}
2.移动端传参数给web
_positioningGo() {return JavascriptChannel(name: 'positioningGo',onMessageReceived: (JavascriptMessage message) async {var latLng = await LocationUtil().refreshAddressFromLatLng();if(_webViewController!=null && latLng!=null){//移动端调用js函数handleCheckChangeEnd并传参_webViewController.runJavascript('handleCheckChangeEnd("$latLng")');}});}