openkraken / kraken

A web standards-compliant, high-performance rendering engine based on Flutter.
https://openkraken.com
Apache License 2.0
4.93k stars 304 forks source link

要如何给JavaScript注入变量? #530

Open xmsz opened 3 years ago

xmsz commented 3 years ago

使用场景 | Use case

提案 | Proposal

andycall commented 3 years ago

https://github.com/openkraken/kraken/blob/main/kraken/lib/src/launcher/controller.dart#L173

andycall commented 3 years ago

controller.view.evaluateJavaScript

xmsz commented 3 years ago

https://github.com/openkraken/kraken/blob/main/kraken/lib/src/launcher/controller.dart#L173

ok 看到了 藏得有点深 文档也没看到


然后有类似onPageStart的时机吗?

我的需求就是,在页面注入一个全局变量,然后应用可以直接拿来用

然后在flutter_webview里,可以在pageStart里注入,因为page onLoad里会太晚了

Kraken我只看到onLoad,这个onLoad我不确定是Kraken的onLoad还是page onLoad

我直接用的时候发现,应用开始是拿不到变量的,需要延迟,说明触发时机可能与onLoad差不多


简单的说我的需求就是,应用在跑的时候就能拿到我通过kraken注入的变量

andycall commented 3 years ago

看上去这更像是个 Kraken 插件的需求。写个 kraken 插件,然后在插件里面用 JavaScript 实现你要的功能就可以了。

https://openkraken.com/plugins/plugin/introduction

xmsz commented 3 years ago

看上去这更像是个 Kraken 插件的需求。写个 kraken 插件,然后在插件里面用 JavaScript 实现你要的功能就可以了。

https://openkraken.com/plugins/plugin/introduction

插件可以

Kraken也会支持onPageStart/beforeLoad的方法吗? 可能也有其他类似需要用到的需求

andycall commented 3 years ago

Kraken也会支持onPageStart/beforeLoad的方法吗? 可能也有其他类似需要用到的需求

WebView 中没有看到过类似的 API,应该都可以用插件解决

xmsz commented 3 years ago

Kraken也会支持onPageStart/beforeLoad的方法吗? 可能也有其他类似需要用到的需求

WebView 中没有看到过类似的 API,应该都可以用插件解决

flutter webview 倒是封装了 https://pub.dev/documentation/webview_flutter/latest/platform_interface/WebViewPlatformCallbacksHandler/onPageStarted.html