V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  binsys  ›  全部回复第 2 页 / 共 7 页
回复总数  129
1  2  3  4  5  6  7  
2022-11-28 13:12:44 +08:00
回复了 qqhahaboy 创建的主题 Android Android WebView 中嵌入原生控件
百度搜索 小程序同层 找相关文章,很多。
2022-11-28 13:11:59 +08:00
回复了 tsinghan 创建的主题 Android 如何让 Android webview 渲染自己编译的 Chromium webview?
其实最终还得走上自己编译 chromium webview 的路线,差别无非是用原类名包名或者都改成自己的取舍问题。
真心不想以自己这技术水平以非专业团队的身份修改打包这个体量的代码。(国内下代码下工具就困难,代码量又真多)。
X5 又不能用( X5 改了包名,类名,ionic capacitor 之类的写死了 webview 类,不能用了,最重要的是官方不支持离线,必须在线分发,还不支持模拟器)。

crosswalk intel 开源技术中心 又不维护了。
2022-11-28 12:58:04 +08:00
回复了 tsinghan 创建的主题 Android 如何让 Android webview 渲染自己编译的 Chromium webview?
回个旧帖子吧,Tencent X5 虽小但并不和胃口啊。

google 以及手机 vendor 安全原因,限制自己编译的 webview 通过系统提供的接口替换系统 webview (通过包名以及签名限制),如果你不 root 能做到,可以找 google 拿奖金的,那是安全问题了。

大概研究了下国内各大长各有各的方案,各有千秋,干了一堆活就为了解决 webview 碎片化(附加防被手机长加广告吧)。

比如我目前就遇到 vue3 的 webview 兼容问题,ES6 proxy 之类的 坑不少(不是做前端的,不太懂,都是更新 webview 就能解决的问题)。

1. 自己编译自己的 webview ,全面改包名及类名,东西都是自己的了,相当于引用一个正常的 aar ,干啥都行。

优点:
可与系统 webview 并存,完全自己的,干啥都行。甚至可以打包上 playstore 。

缺点:
工作量太大,tracking upstream 太累,毕竟把包名类名都改了,漏下一处肯恩就是 bug ,没专门团得的小厂不好消化。
包太大,100+版本的 webview 轻松增加 100MB 以上
没生态(特指大厂不需要的 phonegap ionic capacitor reactnative 之类的生态),因为这类框架里面有的写死了对 android/webkit/WebView 类的引用,你没完美办法让他们调用 android/webkit/WebView 时转向你自己的 WebView 类。

2. 还是自己编译自己 webview ,包名类名不改,app 启动时通过对 ClassLoader 和 webviewupdate 服务及 WebViewFactory.getProvider 的某些 hook 操作,让自己的 WebViewProvider 为 WebView 服务( 5.X+以后 WebView 基本上是个壳子,实际工作交给了 Provider ),

优点:
生态在(我等小厂喜欢),工作量没 1 大,减少了一些兼容问题,

缺点:
但增加了一些兼容问题,在 android 9 + 上得考虑如何安全的越过 hidden api 限制( Provider 是 hidden api )
部分魔改 WEBVIEW 机型兼容性问题,以及资源加载问题。

3. 偷懒取巧办法(大厂可能涉到 apk 分发及授权问题)
用原厂 Google 的 webview ,(比如从 apkmirror 上找到合适版本),当 app 启动时检测当前 webkit 版本,当过低,引导用户下载并安装官方原版 webview (因为墙,得放一个合适的国内 cdn 上)。然后重启 app ,再检测新的 webview apk 包有没有,如果有,获取当前使用 webview 是否是新包,如果是,恭喜你省事儿了。但就有一些手机 rom 厂商写死了不用你安装的 google 官方原版 webview ,这时候就得重复部分 2 里的方法,在你自己 APP 级别上 hook 一些东西,让你的 app 的 webview 找 provider 时强制用 google 的 webview 。(自己的 app 自己的进程,不是替换系统共享 webview ,那不在计划内)

优点:连 webview 都不用编译了,有 google 官方维护,香。
缺点:
得引导用户从未知来源安装这个虽然是官方未修改,但依旧被各种 rom 判定并警告的 apk ( MIUI 未知来源开关界面不定位到列表的具体 apk 上,得用户自己在大列表里翻找到你想开未知来源的 app ,且被判定为系统组件,必须在开发者选项里关掉 MIUI 优化后才能安装),其他手机接触少,华为 锤子(存量用户真有啊)没这些麻烦。

在自己 app 里替换 webview provider 代码参考:
https://github.com/anxinxu/bugs
2022-10-12 11:22:16 +08:00
回复了 dc2002007 创建的主题 程序员 求一款开源的应用商店技术方案
ios 一个企业 in-house 证书都多少钱了。。贵得很
2022-10-11 16:20:53 +08:00
回复了 acbot 创建的主题 Android 手机厂商为自定义 ROM 设置了哪些障碍
固件签名( Boot 链式校验,公钥私钥,SecureBoot 3.0 等)
设备参数及配置
Vendor 驱动及库
(有些 so ko 手机厂商也没代码,是 SOC Vendor ,HW Vendor 私有的,涉及大版本变动时,API 修改了等,直接挂,除非网上有人上各种黑科技 wrapper 套娃等方法让他跑起来,但厂商人员不会这么干,生命周期外会直接停更放弃)
Linux kernel 涉及变更版本时,源码兼容都无法保证,更别说二进制兼容了。
只能是广大网友有时间有精力有技术的贡献支持。
2022-10-03 11:06:47 +08:00
回复了 igarashikenshin 创建的主题 Apple 工行万事达无法为开发者账号续费?
我个人总结必须是银联双标卡,单标目前还没一次成功过。
2022-09-06 08:40:26 +08:00
回复了 magicls 创建的主题 Android 大家搞 android 源码开发的工作环境都是怎样的?
ubuntu+vscode+(vbox+win 有些方案刷机工具只有 win 的)
2022-06-16 21:04:38 +08:00
回复了 adnoh 创建的主题 全球工单系统 米家挂了?
挂了
2022-01-18 10:19:26 +08:00
回复了 summerwindy 创建的主题 宽带症候群 泉州 CN2, 泉州电信,广州移动国际出口大爆炸拉
电信的北美 POP 点是不是关了..会影响出口带宽不
2022-01-18 10:17:36 +08:00
回复了 RickyC 创建的主题 Apple 谁能帮我注册成功苹果开发者账号,我付 200 元
换网络环境,特别是换设备。
2021-12-31 17:48:32 +08:00
回复了 VincentWang 创建的主题 Linux 腾讯出了 Linux 版微信~
2021-12-20 13:14:16 +08:00
回复了 bazingaterry 创建的主题 全球工单系统 cdn.jsdelivr.net 证书错误
一周前一个项目刚换成 cdn.jsdelivr.net
IPV6 的路径好奇怪,

2001:250:7404::/48
CUST6-CERNET
长春理工大学

2001:DA8:B003::/48 这个貌似也是理工的

走完教育网又回学校了...
------------------------------
ipv4 出口走了移动的,移动的网总是各种小问题。
2021-10-14 08:44:24 +08:00
回复了 heeeeeem 创建的主题 程序员 真正的跨域单点登录是怎样的? cas 有人在用吗?
CAS 应用很广,起码在教育系统。
2021-08-11 19:10:06 +08:00
回复了 Kimen 创建的主题 Java POI 如何快速导出千万级数据的 Excel
我处理大量 EXCEL 数据用 MS 的 OPENXMLSDK ,在直接以 XML SAX 形式写入
2021-08-02 09:43:47 +08:00
回复了 waibunleung 创建的主题 DNS DNS 问题,研究到凌晨 4 点还是没有结论...救救孩子吧
DNS 高可用不是用 anycast 保证嘛?
事实上 TPM 就是厂商增强对用户设备的控制的一种手段,就想国内大多强制用手机号注册各种账号一样,顺着一股风就吹来了。这玩意和当前移动设备的各种 bootloader 异曲同工啊。
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2747 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 91ms · UTC 05:22 · PVG 13:22 · LAX 22:22 · JFK 01:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.