|
@@ -1,13 +1,12 @@
|
|
|
# Capacitor Geckoview浏览器支持插件
|
|
|
|
|
|
-
|
|
|
-
|
|
|
# 迁移重点
|
|
|
|
|
|
- Geckoview 不支持直接evalJS(<jscode>)运行JS代码
|
|
|
- 需要通过消息气泡重新实现
|
|
|
- src/main/java/com/getcapacitor/WebExtensionPortProxy.java
|
|
|
- src/main/java/com/getcapacitor/MessageHandler.java
|
|
|
+- Geckoview 默认是arm64库,需要改为32位确保兼容性
|
|
|
|
|
|
## 开发调试
|
|
|
``` bash
|
|
@@ -36,79 +35,6 @@ apksigner sign --ks ../com.fmode.stv.caipu.keystore --ks-pass pass:caipu666 --ks
|
|
|
api "org.mozilla.geckoview:geckoview-armeabi-v7a:123.0.20240304104836"
|
|
|
```
|
|
|
|
|
|
-# 变更记录
|
|
|
-## TODOLIST ISSUE
|
|
|
-### ISSUE 1
|
|
|
-- 6.2.1/capacitor/src/main/java/com/getcapacitor/JSInjector.java
|
|
|
- - 暂时屏蔽了capacitor js插入
|
|
|
- - 此处执行js正常,但是由于后续.eval错误导致程序报错,不停重启
|
|
|
- - getScriptString()函数
|
|
|
- - 注释的嵌入代码部分,让js识别为android环境,但是后续.eval执行无效导致报错
|
|
|
- - 需要修复WebExtensionPortProxy.eval时同时开启
|
|
|
-
|
|
|
-### ISSUE 2
|
|
|
-- 安卓TV,安装apk,启动过了splash直接停止,无法运行
|
|
|
- - 查看日志:无任何日志
|
|
|
- - 已经测试:
|
|
|
- - 是否程序错误安卓不能运行?否,可以运行
|
|
|
- - 安卓手机安装正常运行
|
|
|
- - 是否不兼容geckoview?否,是支持的
|
|
|
- - 安卓电视,安装LightningBrowser正常加载geckoview访问angular网页
|
|
|
- - 是否由于ISSUE 1报错导致?否,根本没有MainActivity.java
|
|
|
- - 日志中空消息,根本没有启动apk
|
|
|
- - 是否是Debug版本导致?否,正式打包签名Release,仍然不能启动
|
|
|
- - 是否是第三方库架构不是arm64?确实不是arm64,对应的arm32位库
|
|
|
- - 测试:adb -s 192.168.2.8:5555 shell getprop ro.product.cpu.abi
|
|
|
- - 结果:armeabi-v7a,不是arm64-v8a
|
|
|
- - 原因分析:暂无
|
|
|
- - 解决方案:直接用32位arm库
|
|
|
- - 解决armeabi-v7a库问题
|
|
|
- - 直接用armeabi-v7a库,因为64位兼容32的库
|
|
|
-
|
|
|
-## Upgrade to 6.2.1
|
|
|
-- 将web-media项目,覆盖官方5.7.0,查看变化。
|
|
|
-- 在6.2.1文件中逐个修改差异文件
|
|
|
-
|
|
|
-### 复制新文件
|
|
|
-``` bash
|
|
|
-mkdir -p 6.2.1/capacitor/src/main/java/com/getcapacitor/httpserver/
|
|
|
-
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/Delegates.java 6.2.1/capacitor/src/main/java/com/getcapacitor/Delegates.java
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/IPostMessage.java 6.2.1/capacitor/src/main/java/com/getcapacitor/IPostMessage.java
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/WebExtensionPortProxy.java 6.2.1/capacitor/src/main/java/com/getcapacitor/WebExtensionPortProxy.java
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/WebviewExtension.java 6.2.1/capacitor/src/main/java/com/getcapacitor/WebviewExtension.java
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/cordova/CapacitorCordovaGeckoViewCookieManager.java 6.2.1/capacitor/src/main/java/com/getcapacitor/cordova/CapacitorCordovaGeckoViewCookieManager.java
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaGeckoviewImpl.java 6.2.1/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaGeckoviewImpl.java
|
|
|
-cp node_modules/@web-media/capacitor-geckoview/capacitor/src/main/java/com/getcapacitor/httpserver/SimpleHttpServer.java 6.2.1/capacitor/src/main/java/com/getcapacitor/httpserver/SimpleHttpServer.java
|
|
|
-```
|
|
|
-### 修改差异文件
|
|
|
-
|
|
|
-
|
|
|
-## Changed Files 5.7.0
|
|
|
-- 修改文件
|
|
|
-``` bash
|
|
|
-modified: 5.7.0/capacitor/build.gradle
|
|
|
-modified: 5.7.0/capacitor/src/main/assets/native-bridge.js
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/Bridge.java
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/CapConfig.java
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/MessageHandler.java
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaInterfaceImpl.java
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaWebViewImpl.java
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookies.java
|
|
|
-modified: 5.7.0/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorHttp.java
|
|
|
-modified: 5.7.0/capacitor/src/main/res/layout/bridge_layout_main.xml
|
|
|
-modified: 5.7.0/capacitor/src/main/res/layout/fragment_bridge.xml
|
|
|
-```
|
|
|
-
|
|
|
-- 新增文件
|
|
|
-``` bash
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/Delegates.java
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/IPostMessage.java
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/WebExtensionPortProxy.java
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/WebviewExtension.java
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/cordova/CapacitorCordovaGeckoViewCookieManager.java
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaGeckoviewImpl.java
|
|
|
-new file: 5.7.0/capacitor/src/main/java/com/getcapacitor/httpserver/SimpleHttpServer.java
|
|
|
-```
|
|
|
|
|
|
-# Powered By
|
|
|
+# Powered By
|
|
|
+- Fmode Inc.
|