|
@@ -1,26 +1,65 @@
|
|
|
# Capacitor Geckoview浏览器支持插件
|
|
|
|
|
|
-# 迁移重点
|
|
|
|
|
|
-- Geckoview 不支持直接evalJS(<jscode>)运行JS代码
|
|
|
- - 需要通过消息气泡重新实现
|
|
|
- - src/main/java/com/getcapacitor/WebExtensionPortProxy.java
|
|
|
- - src/main/java/com/getcapacitor/MessageHandler.java
|
|
|
-- Geckoview 默认是arm64库,需要改为32位确保兼容性
|
|
|
+# 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完成编译测试
|
|
|
+# 完成以上步骤:从编译开始,直接修改node_modules/@capacitor/android代码 通过gradlew完成编译测试
|
|
|
+
|
|
|
+# 进入安卓目录
|
|
|
+cd android
|
|
|
|
|
|
-# 测试打包
|
|
|
-./gradlew assembleDebug
|
|
|
+# 调试环境:测试打包
|
|
|
+./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(<jscode>)运行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
|