AndroidNavigationDelegate constructor
AndroidNavigationDelegate(
- PlatformNavigationDelegateCreationParams params
Creates a new AndroidNavigationDelegate.
Implementation
AndroidNavigationDelegate(PlatformNavigationDelegateCreationParams params)
: super.implementation(params is AndroidNavigationDelegateCreationParams
? params
: AndroidNavigationDelegateCreationParams
.fromPlatformNavigationDelegateCreationParams(params)) {
final WeakReference<AndroidNavigationDelegate> weakThis =
WeakReference<AndroidNavigationDelegate>(this);
_webViewClient = (this.params as AndroidNavigationDelegateCreationParams)
.androidWebViewProxy
.createAndroidWebViewClient(
onPageFinished: (android_webview.WebView webView, String url) {
final PageEventCallback? callback = weakThis.target?._onPageFinished;
if (callback != null) {
callback(url);
}
},
onPageStarted: (android_webview.WebView webView, String url) {
final PageEventCallback? callback = weakThis.target?._onPageStarted;
if (callback != null) {
callback(url);
}
},
onReceivedRequestError: (
android_webview.WebView webView,
android_webview.WebResourceRequest request,
android_webview.WebResourceError error,
) {
final WebResourceErrorCallback? callback =
weakThis.target?._onWebResourceError;
if (callback != null) {
callback(AndroidWebResourceError._(
errorCode: error.errorCode,
description: error.description,
failingUrl: request.url,
isForMainFrame: request.isForMainFrame,
));
}
},
onReceivedError: (
android_webview.WebView webView,
int errorCode,
String description,
String failingUrl,
) {
final WebResourceErrorCallback? callback =
weakThis.target?._onWebResourceError;
if (callback != null) {
callback(AndroidWebResourceError._(
errorCode: errorCode,
description: description,
failingUrl: failingUrl,
isForMainFrame: true,
));
}
},
requestLoading: (
android_webview.WebView webView,
android_webview.WebResourceRequest request,
) {
weakThis.target?._handleNavigation(
request.url,
headers: request.requestHeaders,
isForMainFrame: request.isForMainFrame,
);
},
urlLoading: (android_webview.WebView webView, String url) {
weakThis.target?._handleNavigation(url, isForMainFrame: true);
},
doUpdateVisitedHistory: (
android_webview.WebView webView,
String url,
bool isReload,
) {
final UrlChangeCallback? callback = weakThis.target?._onUrlChange;
if (callback != null) {
callback(AndroidUrlChange(url: url, isReload: isReload));
}
},
);
_downloadListener = (this.params as AndroidNavigationDelegateCreationParams)
.androidWebViewProxy
.createDownloadListener(
onDownloadStart: (
String url,
String userAgent,
String contentDisposition,
String mimetype,
int contentLength,
) {
if (weakThis.target != null) {
weakThis.target?._handleNavigation(url, isForMainFrame: true);
}
},
);
}