gpt4 book ai didi

Android:拦截来自 WebView 的 AJAX 调用

转载 作者:可可西里 更新时间:2023-11-01 18:49:48 27 4
gpt4 key购买 nike

我想要一个 HTML/javascript 应用程序,在 WebView 中运行以进行由 Java< 处理的 AJAX 调用代码。
理想情况是只拦截调用(简单,只需使用 shouldOverrideUrlLoading())并“返回”一些数据。
但是,除了使用 loadUrl() 调用 javascript 函数外,我找不到“返回”对 WebView 的响应的方法.
这对我不起作用,因为 HTML/javascript 应用程序是一个我无法控制的嵌入式应用程序。就 HTML/javascript 应用程序而言,它只是执行一个 AJAX 调用并接收一些返回的数据。

对此有什么想法吗?

最佳答案

大家好消息:在 API 级别 11 中,他们将 shouldInterceptRequest 方法放入 WebViewClient 类中。它还会在请求 WebView 触发器中的应用程序时触发。您可以按如下方式覆盖它:

@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url)
{
if (magicallyMatch(url))
return new WebResourceResponse("application/json", "utf-8", magicallyGetSomeInputStream());

return null;
}

来自Android Reference :

public WebResourceResponse shouldInterceptRequest (WebView view, String url)

Since: API Level 11

Notify the host application of a resource request and allow the application to return the data. If the return value is null, the WebView will continue to load the resource as usual. Otherwise, the return response and data will be used. NOTE: This method is called by the network thread so clients should exercise caution when accessing private data.

Parameters

view The WebView that is requesting the resource.

url The raw url of the resource.

Returns

A WebResourceResponse containing the response information or null if the WebView should load the resource itself.

同时检查 WebResourceResponse .

希望这对您有所帮助。

关于Android:拦截来自 WebView 的 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com