prepare method
void
prepare()
Implementation
void prepare() {
if (headlessWebViewId != null) {
final headlessWebView =
HeadlessInAppWebViewManager.webViews[headlessWebViewId!];
if (headlessWebView != null && headlessWebView.webView != null) {
final webView = headlessWebView.disposeAndGetFlutterWebView();
if (webView != null) {
webView.iframe.id = iframe.id;
iframe.remove();
iframeContainer.append(webView.iframe);
iframe = webView.iframe;
initialSettings = webView.initialSettings;
settings = webView.settings;
initialUrlRequest = webView.initialUrlRequest;
initialData = webView.initialData;
initialFile = webView.initialFile;
jsWebView = flutterInAppWebView?.createFlutterInAppWebView(
_viewId is int ? (_viewId as int).toJS : _viewId.toString().toJS,
iframe,
iframeContainer);
}
}
}
if (headlessWebViewId == null && settings == null) {
settings = initialSettings ?? InAppWebViewSettings();
Set<Sandbox> sandbox = Set.from(Sandbox.values);
if (settings!.javaScriptEnabled != null &&
!settings!.javaScriptEnabled!) {
sandbox.remove(Sandbox.ALLOW_SCRIPTS);
}
iframe.allow = settings!.iframeAllow ?? iframe.allow;
iframe.allowFullscreen =
settings!.iframeAllowFullscreen ?? iframe.allowFullscreen;
iframe.referrerPolicy = settings!.iframeReferrerPolicy?.toNativeValue() ??
iframe.referrerPolicy;
iframe.name = settings!.iframeName ?? iframe.name;
iframe.csp = settings!.iframeCsp ?? iframe.csp;
iframe.role = settings!.iframeRole ?? iframe.role;
iframe.ariaHidden = settings!.iframeAriaHidden ?? iframe.ariaHidden;
if (settings!.iframeSandbox != null &&
settings!.iframeSandbox != Sandbox.ALLOW_ALL) {
iframe.setAttribute("sandbox",
settings!.iframeSandbox!.map((e) => e.toNativeValue()).join(" "));
} else if (settings!.iframeSandbox == Sandbox.ALLOW_ALL) {
iframe.removeAttribute("sandbox");
} else if (sandbox != Sandbox.values) {
iframe.setAttribute(
"sandbox", sandbox.map((e) => e.toNativeValue()).join(" "));
settings!.iframeSandbox = sandbox;
}
}
jsWebView?.prepare(settings?.toMap().jsify());
}