KotaHv
KotaHv
> 需要考虑一下聚合 RSS 如果是聚合 RSS,那应不应该删除?
经过简单测试,forMainFrameOnly 在 Android 上有效。
> 导致了 windows 解析器的失败,主要问题在于 flutter 包含原生代码的插件的机制,如果我们引入的插件支持所有平台,那么所有平台都会包含对应的原生代码,即使在相应平台上相关插件从未被使用。 > > flutter_inappwebview 插件与 webview_windows 插件存在难以解决的冲突,且 flutter_inappwebview 在 windows 平台上的 user script 相关实现存在问题。这导致 windows 解析器无法使用。 好的,我来对这部分进行重构。
Content Blocker 主要是为了拦截 dmand 规则的 https://www.88dmw.com/template/dmd8pc/js/devtools-detector.js,这个会导致 src被重定向到 https://www.dmd8.com/。platform_interface 会调用该平台的实现,或许不用考虑 Content Blocker
是 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1' 造成的, 这个ua会导致访问移动版,我们应该将其从 userAgentsList 移除
> [@KotaHv](https://github.com/KotaHv) > > 我在查看 inappwebview 文档时注意到一个问题, UserScript 似乎会在 webview 后续加载的其他网页中继续生效. > > 考虑到我们注入的时机是 loadUrl , 这是否会导致每次切换选集时的重复注入, 这种重复注入是否会影响更换分集时的解析. 换集时只会在 safari 控制台里提示: 1. SyntaxError: Can't create duplicate variable: '_r_text' 2. SyntaxError:...
Android 上也不是原生,是通过 [prepareAndAddUserScripts](https://github.com/pichillilorenzo/flutter_inappwebview/blob/0aaf7a0bfc01d61a4d1453cefb57fb6783b6e676/flutter_inappwebview_android/android/src/main/java/com/pichillilorenzo/flutter_inappwebview_android/webview/in_app_webview/InAppWebView.java#L596) 来实现注入
> [@KotaHv](https://github.com/KotaHv) > > 这个错误是 blob 解析脚本导致的, 其中的主要变量被声明为不可变, 在脚本被重复执行时尝试为不可变量重新赋值而抛出了错误 > > 我们是否应该考虑修改 UserScript 的注入时机以解决重复注入的问题 可能不是注入时机的问题, _observer的注入时机是AT_DOCUMENT_END,可能是在iOS、macOS平台上之前注入的变量仍然存在于 JavaScript 上下文中? 可以通过在unloadPage里添加 await webviewController!.removeAllUserScripts();解决
> > Android 上也不是原生,是通过 [prepareAndAddUserScripts](https://github.com/pichillilorenzo/flutter_inappwebview/blob/0aaf7a0bfc01d61a4d1453cefb57fb6783b6e676/flutter_inappwebview_android/android/src/main/java/com/pichillilorenzo/flutter_inappwebview_android/webview/in_app_webview/InAppWebView.java#L596) 来实现注入 > > ohos 看代码也是相同的方式来模拟注入。但是貌似安卓上可以正常工作?可以看一下适配安卓的代码吗?我怀疑是我移植上的问题或者 ohos webview 的问题 我还没开始适配Android,只是让 Android 使用 WebviewAppleItemControllerImpel 与 WebviewAppleItemImpel 进行了简单测试。
> > 可能不是注入时机的问题, _observer的注入时机是AT_DOCUMENT_END,可能是在iOS、macOS平台上之前注入的变量仍然存在于 JavaScript 上下文中? 可以通过在unloadPage里添加 await webviewController!.removeAllUserScripts();解决 > > 是的, 我上面的意思就是 UserScript 在 webview 的整个生命周期都是存在的, 并不会随着网页的重新加载而被移除, 上面的注入时机指的是我们要不要考虑在 webview 初始化时, 而不是加载网页时注册 UserScript > > await webviewController!.removeAllUserScripts(); 听上去不错, 你可以测试这个实现吗, 主要测试有无控制台报错,...