adid:Adjust 为该设备分配的归因唯一 ID。gps_adid:Google Play 服务广告 ID(即安卓的 GAID)。将获取到的相关 Adjust 数据,作为 Query URL 参数,拼接到游戏入口 URL 上进行加载。
https://[GAME_H5_ADDRESS]/?adid=[adid的值]&gps_adid=[gps_adid的值]&s2s=1&from=apk项目需要在 WebView 中加载指定的URL,并实现与H5通信的 JS Bridge 机制。
这部分包含了原生 WebView 的基础显示配置、网络加载控制及相关的触控体验交互。
setJavaScriptMode(JavaScriptMode.unrestricted)。setBackgroundColor(Colors.white),增强用户体验。setSupportMultipleWindows(true) 及 javaScriptCanOpenWindowsAutomatically = true 的效果),以支持 window.open 或 <a target="_blank"> 在应用内部正确响应或新开 Web 视图处理。reload(),让 WebView 重新尝试加载当前失败的 URL。RefreshIndicator 组件)嵌套下拉刷新控件;当用户在页面顶部下拉时,触发该控件并调用 WebView 实例的 reload() 方法重新加载当前网页。GestureDetector 或原生系统层面的滑动返回支持)来捕获用户的左滑/右滑动作:
WebView 有历史记录时,调用 goBack()。WebView 有历史记录时,调用 goForward()。在 WebView 初始化时,必须注册一个名为 FlutterApp 的 JavaScript 通道(JavaScript Channel)。H5页面将通过调用 window.FlutterApp.postMessage(message) 与 Flutter 端进行交互。
Flutter端代码需要监听并处理 FlutterApp 接收到的消息指令,执行对应的原生操作:
open:<url> (字符串前缀匹配)
open: 开头时(例如 open:https://www.google.com),需截取 open: 之后的 URL 字符串,并调用类似于 url_launcher 的原生插件以 外部应用模式 (External Application) 打开该链接。refresh
reload())。back
goBack())。forward
goForward())。alert:<message> (字符串前缀匹配)
<message> 文本内容。whatsapp://、tg:// 等唤端协议),将 URI 使用外部应用拉起。测试页面链接:test_h5.html