2012-04-10 83 views
1

我想要做一些有点棘手的事情。我有一个活动,里面有一个webView。 此Web视图正在加载具有一些JavaScript功能的外部html文件。使用Javascript的webView

我的活动定期产生一些reults,我想在JavaScript函数中访问这些结果。我认为将输出结果写入一个文件并在JavaScript端阅读可能是一个解决方案。但我不确定。

有没有办法这样做?

我知道我们可以从javascript导航到android功能,但它不完全是我所需要的。

谢谢..

+0

不知道JS是否可以读取本地存储的文件 – 2012-04-10 08:56:42

+0

js可以读取本地文件。您可以将js文件放入应用程序的资产文件夹以及要读取的文件中,然后执行此操作。我的应用程序这样做是为了获得卫星位置,在js中完成的计算然后通过我的android web视图读取并显示在屏幕 – Katana24 2012-04-10 09:13:33

+0

@ Katana24其实我正在尝试做同样的事情。获取gps位置并在地图上显示。但据我所知,我无法写入资产文件夹中的文件? – penguru 2012-04-10 09:44:07

回答

2

如果您需要的结果只有一次,和上飞,那么你可以尝试不要把它们写到一个文件,但将其注入到WebView中,如JavaScript。例如,在您的页面中,您可以添加一个功能:

function newData(jsonObj) { 
    ... 
} 

而不是写入文件,您可以使用您的实际数据调用此文件。

webview.loadUrl("javascript:(newData({a:1, b:2,...}))"); 
+0

如何从android活动调用javascript函数并注入jsonObj参数? – penguru 2012-04-10 10:16:25

+0

在答案中增加了一个示例 – Gavriel 2012-04-10 10:22:43

+0

@Flöcys - 如果它能起作用,我不会受到影响。因为我已经用webView.loadDataWithBaseURL加载了webview。然后再次调用loadUrl可能不起作用。我会尽力.. – penguru 2012-04-10 10:45:30