setWebConfig method
dynamic
setWebConfig()
Implementation
setWebConfig() async {
late final PlatformWebViewControllerCreationParams params;
if (WebViewPlatform.instance is WebKitWebViewPlatform) {
params = WebKitWebViewControllerCreationParams(
allowsInlineMediaPlayback: true,
mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{},
limitsNavigationsToAppBoundDomains: true,
);
} else {
params = const PlatformWebViewControllerCreationParams();
}
webviewController = WebViewController.fromPlatformCreationParams(params)
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(Colors.white)
..setNavigationDelegate(
NavigationDelegate(
onPageFinished: (String url) {
debugPrint("加载完成: $url");
if (errorText.isEmpty) {
setState(() {
canRun = true;
for (final msg in messageQueue) {
toStandard(msg);
}
messageQueue.clear();
});
uploadPermission();
}
},
),
)
..setOnScrollPositionChange((ScrollPositionChange position) {
if (position.x != 0 || position.y != 0) {
webviewController?.scrollTo(0, 0);
}
})
..addJavaScriptChannel(
'a',
onMessageReceived: (JavaScriptMessage message) {
Future.delayed(const Duration(milliseconds: 0), () {
if (canRun) {
toStandard(message.message);
} else {
messageQueue.add(message.message);
}
});
},
)
..setOverScrollMode(WebViewOverScrollMode.never);
Map<String, String> headers = {"Z-Web-Frame-Ver": "v1.1.0"};
await webviewController!.loadRequest(Uri.parse(url), headers: headers);
}