# Capacitor Geckoview浏览器支持插件 # Features 功能支持 - [x]支持加载本地www为本地网址,通过http访问 - [x]支持geckoview加载本地网页文件,支持SPA应用规则 - [x]@capacitor/device 正常获取androidId - 通过js嵌入localStorage设置_capuid参数 - [ ]支持https://localhost:port/访问 - [ ]支持原有@capacitor/android插件通信 # Usage 使用方法 - 第一步:更新项目@capacitor/android为6.2.1具体版本 - npm i -S @capacitor/android@6.2.1 - 更新其他@capacitor插件为@^6.0.0同一个大版本 - 确认原有打包结果正常 - 第二步:覆盖项目 - 克隆或下载本项目,找到路径6.2.1/capacitor - 覆盖加入geckoview的代码 ``` bash # 整体覆盖代码 cp -rf ../capacitor-geckoview-fmode/6.2.1/capacitor/* ../node_modules/@capacitor/android/capacitor/ # 添加build.gradle repositories { maven{ url "https://maven.mozilla.org/maven2/" } } # 添加app/build.gradle dependencies{ api "org.mozilla.geckoview:geckoview-armeabi-v7a:123.0.20240213221259" } ``` - 第三步:手动执行打包子步骤 ``` bash # 完成以上步骤:从编译开始,直接修改node_modules/@capacitor/android代码 通过gradlew完成编译测试 # 进入安卓目录 cd android # 调试环境:测试打包 ./gradlew installDebug # 直接打包运行测试APK ./gradlew assembleDebug # 打包测试APK # 正式环境:正式打包 + 证书签名 ./gradlew assembleRelease # 压缩对齐:以com.fmode.stv.caipu项目为例 zipalign -v 4 app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/com.fmode.stv.caipu-zip.apk # 签名示例:以com.fmode.stv.caipu项目为例 apksigner sign --ks ../com.fmode.stv.caipu.keystore --ks-pass pass:caipu666 --ks-key-alias caipu --in app/build/outputs/apk/release/com.fmode.stv.caipu-zip.apk --out app/build/outputs/apk/release/com.fmode.stv.caipu-release.apk ``` # Important 迁移重点 - Geckoview 不支持直接evalJS()运行JS代码 - 需要通过消息气泡重新实现 - src/main/java/com/getcapacitor/WebExtensionPortProxy.java - src/main/java/com/getcapacitor/MessageHandler.java - Geckoview 默认是arm64库,需要改为32位确保兼容性 ## 兼容测试 - 下载geckoview浏览器测试 - https://github.com/threethan/LightningBrowser/releases ## 依赖引用 - 注意!请进入maven2仓库查询版本号,填写存在版本 ``` // https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-arm64-v8a/ api "org.mozilla.geckoview:geckoview-arm64-v8a:123.0.20240213221259" // https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-armeabi-v7a/ api "org.mozilla.geckoview:geckoview-armeabi-v7a:123.0.20240304104836" ``` # Powered By - Fmode Inc.