webviewNavigationPolicy function

String webviewNavigationPolicy(
  1. String url,
  2. String baseUrl,
  3. int restrictMode
)

origin: webview_dart/lib/main_inappwebview_flutter.dart (APP_RESTRICT_URL branching) author: anovsiradj, opencode-go/glm-5.2 version: 2026-08-13, revised: 2026-08-17

URL restriction policy. restrictMode: 0 = open external + block, 1 = block all non-baseUrl. Returns: 'allow' | 'cancel' | 'download' | 'external'.

Implementation

String webviewNavigationPolicy(String url, String baseUrl, int restrictMode) {
  if (isWhatsAppDeeplink(url)) return 'external';
  if (isDownloadableUrl(url)) return 'download';
  if (restrictMode == 1 && !url.startsWith(baseUrl)) return 'cancel';
  if (restrictMode == 0 && url.isNotEmpty && !url.startsWith(baseUrl)) return 'external';
  return 'allow';
}