geckoview implementation for capacitor powered by fmode

ryanemax cb585aed79 fix: readme.md for usage 3 өдөр өмнө
5.7.0 50998ddaec init: capacitor/android 5.7.0 1 долоо хоног өмнө
6.2.1 f45454da2a fix: disable capacitor plugin & support arm32 3 өдөр өмнө
.gitignore e6f2c0cc4d upgrade: 6.2.1 with geckoview 1 долоо хоног өмнө
CHANGELOG_6.2.1.md 247603b775 fix: novapack todo 3 өдөр өмнө
README.md cb585aed79 fix: readme.md for usage 3 өдөр өмнө
package.json 50998ddaec init: capacitor/android 5.7.0 1 долоо хоног өмнө

README.md

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的代码

      # 整体覆盖代码
      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"
      }
      
  • 第三步:手动执行打包子步骤

    # 完成以上步骤:从编译开始,直接修改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位确保兼容性
  • 兼容测试

    依赖引用

    • 注意!请进入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.