Skip to content

特殊设置 ​

兼容性 polyfill、桥接和其他专门开关。这张卡片汇集了专门的 WebViewConfig 选项。

位置:编辑通用配置编辑器中的 特殊设置 卡片。

Polyfill 与桥接 ​

  • 剪贴板 polyfill —— enableClipboardPolyfill。
  • 通知 polyfill —— Web Notification 支持(enableNotificationPolyfill)。导出时打开网页通知,或打开这个开关后,new Notification() 和同源 service worker 的 showNotification 都会进系统通知栏。
  • 方向 polyfill —— enableOrientationPolyfill。
  • 兼容 polyfill —— 一组兼容 shim(enableCompatPolyfills)。
  • 原生桥 —— 暴露带能力门控的 window.NativeBridge(enableNativeBridge、nativeBridgeCapabilities)。文件夹能力默认关闭。打开后,页面可选择一个目录,并在系统 WebView 上通过 WtaDirectory 列出、读取和写入。授权留在那台设备上,导出的应用需要再选一次。
  • 打印桥 —— 拦截 window.print() 和 PDF 输出到 Android 打印框架(enablePrintBridge)。
  • 媒体会话桥 —— 把网页媒体接入系统媒体通知和锁屏控制,支持蓝牙耳机和 Android Auto(enableMediaSession)。
  • 后台继续播放 —— 离开应用后,正在播放的声音继续,通知栏可以暂停。画面会停,回到应用后接着播(backgroundMediaPlayback,默认关闭;打开时会同时打开媒体会话)。
  • 网页分享 —— 网页把文字和文件交给系统分享面板,由用户选择目标应用(enableShareBridge,默认开启)。说明文字可以和文件一起送出。文档使用和文件选择器相同的 MIME 类型。
  • 缩放 polyfill —— enableZoomPolyfill。

媒体与内容 ​

  • 媒体自动播放 —— 带范围(mediaAutoplayEnabled、mediaAutoplayScope:仅视频……)。
  • 图片修复 —— 修复损坏的图片(enableImageRepair)。
  • 滚动记忆 —— 记住滚动位置(enableScrollMemory)。
  • 返回状态保留 —— enableBackStatePreservation。
  • Blob 下载拦截 —— 带范围和大小阈值(enableBlobDownloadInterception、blobInterceptThresholdMb)。
  • 接收分享内容 —— 生成的 App 出现在 Android 系统分享面板中;收到的图片/文本经 wta:share DOM 事件送达页面,或预填页面的文件选择器(receiveShareImages、receiveShareText、shareDeliveryMode、sharePromptBeforeUse)。见接收分享内容。

JavaScript 与窗口 ​

  • JS 可打开窗口 —— 带策略(javaScriptCanOpenWindows、jsOpenWindowsPolicy)。
  • 预置用户激活 —— 合成用户手势,带模式和时机(primeUserActivation、primeUserActivationMode、primeUserActivationTiming)。
  • Base64 深度链接 —— 解码 base64 深度链接,仅手势或总是(decodeBase64DeepLinks、decodeBase64Mode)。

应用回跳 ​

  • 应用回跳 —— 声明其他应用把控制权交回本应用的通道,这样在对方应用内完成授权后,QQ、微博等第三方登录才能回到本应用(enableAppReturn,默认开启)。关闭后页面仍能打开对方应用(任何非 http scheme 都会交给系统),但回调无处可返,系统会提示没有可用于打开的应用。
    • 只声明回跳通道,绝不声明 weixin、alipays 这类唤起通道:声明它们会让本应用成为对方自家链接的候选,点"微信支付"可能弹出本应用而不是微信。
    • 自定义回跳 scheme(customAppReturnSchemes)—— 部分平台把回调 scheme 绑定到你在它那里注册的应用 ID(例如微信的 wx<appid>),无法作为默认值提供。每行或用逗号分隔一个。

各平台的回跳方式 ​

声明平台的唤起 scheme(weixin、alipays、taobao 等)没有帮助,反而有害:这些 scheme 是用来打开该平台的,一旦你也声明,本应用就成了对方自家链接的候选,用户在支付中途会看到应用选择框。应用回跳只声明回跳通道。

平台如何交回控制权由谁覆盖
QQ(网页登录)mqqopensdkapi://browser?url=<回调地址> —— 与调用方无关内置,默认开启
微信(SSO / H5 支付)回到你在微信开放平台注册的 scheme(wx<AppID>);H5 支付还需要商户后台把它加入白名单自定义回跳 scheme —— 先注册应用,再填 wx<AppID>
支付宝(H5 支付 / 授权)回到调用方指定的 scheme;浏览器和应用各传各的,页面里的那个值必须被改写才能回到本应用不自动 —— 见下
微博(SSO)回到与你的 AppKey 匹配的 scheme(wb<AppKey>)自定义回跳 scheme
淘宝 / 天猫 / 京东 / 抖音 / 哔哩哔哩没有与调用方无关的回跳通道;页面原地继续,或走自己域名下的 http(s) 回调站点自身的 https 回调,导出时已声明

对于回跳到被封装站点自己域名下的 https 回调的平台(支付宝 H5、微信网页授权),导出时已声明该 host,所以回调能够回到本应用 —— 当浏览器也匹配时,Android 可能询问用哪个应用打开。

安全与其他 ​

  • 跨源隔离 —— enableCrossOriginIsolation。
  • 防截屏 —— 阻止屏幕截取(antiCapture)。
  • 视频全屏时隐藏状态栏 —— 网页视频进入 HTML5 全屏播放时强制隐藏状态栏,退出全屏后恢复(hideStatusBarInVideoFullscreen,默认开启)。视频全屏期间优先于全屏模式中的"全屏显示状态栏"选项。
  • 文件 URL 的文件访问 —— allowFileAccessFromFileURLs、allowUniversalAccessFromFileURLs。
  • 错误页 —— 自定义错误页配置(errorPageConfig)。
  • 性能优化 —— performanceOptimization。
  • PWA 离线 —— 离线缓存策略(pwaOfflineEnabled、pwaOfflineStrategy)。
  • 每次打开都是新会话 —— 在 网络与离线 卡片上,与 PWA 离线相邻(clearBrowsingDataOnLaunch)。默认关闭。生成的 APK 会在每次冷启动(包括第二次打开)清除 Cookie、站点存储和磁盘上的 WebView 资料。它不能和 PWA 离线同时开启。保持关闭则资料目录保留。
  • 浮动返回按钮 —— showFloatingBackButton。
  • 键盘调整模式 —— keyboardAdjustMode(resize……)。在 Android 11 及更高版本上,RESIZE 在键盘移动时保持页面顶部不动,只把文档滚动到刚好露出焦点输入框,并裁到键盘上沿。动画结束时不改 WebView 高度,输入框不会再被画一次。在 Android 10 及以下,RESIZE 走经典窗口缩放路径(窗口非 edge-to-edge)。
  • 全屏视频方向 —— 全屏视频如何转向(fullscreenVideoOrientation),如自动传感器横屏。
  • 隐藏 URL 预览 —— hideUrlPreview。

说明 ​

  • 这些是高级用户开关;大多数应用保持默认即可。
  • 默认值:以下安全体验特性对新应用默认开启——剪贴板/方向/兼容 polyfill、媒体会话、分享、缩放与打印桥、图片修复、滚动记忆、返回状态保留、Blob 拦截、JS 窗口、用户激活预置、Base64 深链、应用回跳、私网桥和原生桥。刻意保持关闭:通知 polyfill(否则每个导出包都会弹通知权限)、定位、混合内容、第三方 Cookie、自动播放和弹窗拦截。