我想要一个HTML/javascript在中运行的应用程序WebView来进行AJAX由Java代码处理的调用。 理想的方法是仅拦截呼叫(简单,只需使用shouldOverrideUrlLoading())并“返回”一些数据。 但是,WebView除了javascript使用调用函数外,我没有找到“返回”对的响应的方法loadUrl()。 这对我来说不起作用,因为该HTML/javascript应用程序是我无法控制的嵌入式应用程序。就HTML / javascript应用程序而言,它只是进行AJAX调用并接收一些数据。
HTML/javascript
WebView
AJAX
Java
shouldOverrideUrlLoading()
javascript
loadUrl()
有什么想法吗?
最后,我还是使用了问题中描述的方法。
我截获了一些特定的请求,例如:foo://bar/get/1?callback=foobar然后解析URL并使用实际数据调用javascript回调函数。 回调函数是在的查询部分中定义的URL,因此在上面的示例中将是:foobar();
foo://bar/get/1?callback=foobar
URL
foobar();
调用该函数很简单,只需使用: yourWebView.loadUrl("javascript:foobar('somedata')");
yourWebView.loadUrl("javascript:foobar('somedata')");