什么's在Android中更快:使用loadUrl将数据发送到WebView,或者使用JavascriptInt

What's faster in Android: sending data to a WebView with loadUrl or retrieving it from the WebView with a JavascriptInterface?

本文关键字:数据 WebView JavascriptInt 或者 loadUrl 使用 Android 什么      更新时间:2023-09-26

我正在编写一个Android应用程序,在该应用程序中,我必须将许多整数从应用程序的Java代码传输到WebView中的Javascript,以便将它们显示给用户。

我看到了两种传输字符串的方法:

  • 在WebView上使用loadUrl

对于包含int的数组data,我将使用此代码将它们传输到我的Web视图。

webView.loadUrl("javascript:loadData(" + data[0] + ");"); // data[0] is an int
webView.loadUrl("javascript:loadData(" + data[1] + ");"); // data[1] is an int
// etc.
  • 使用JavascriptInterface

我有一个Java类,它包含data数组,并公开一个名为getData(int x)的方法,该方法只返回data[x]的值。我可以声明一个JavascriptInterface,这样我的Javascript代码就可以看到这个方法,然后它可以调用它并获取数据:

webView.addJavascriptInterface(backend, "dataBackend");

我的问题是:哪种方法更快我想,如果我在data中有很多元素,那么执行很多loadUrl()调用将是缓慢和有缺陷的。但替代方案的效果更快吗?

通常情况下,loadUrl和jsInterface都不应该传输大量数据。但是,您可以尝试从这些整数构建一个大字符串,然后使用它。