我有一个带有 url 的 webview(例如支付处理页面)。加载 url 后,某些 api 调用已完成,我想知道如何从该特定 url 的内部 api 调用中获取数据。
它不像网页和反应原生代码之间的通信。(window.ReactNativeWebView.postMessage
或onMessage
)我需要来自网页的内部 api 调用响应数据。
我有一个带有 url 的 webview(例如支付处理页面)。加载 url 后,某些 api 调用已完成,我想知道如何从该特定 url 的内部 api 调用中获取数据。
它不像网页和反应原生代码之间的通信。(window.ReactNativeWebView.postMessage
或onMessage
)我需要来自网页的内部 api 调用响应数据。
您可以将 js 注入 webview 以获取 api 详细信息
var open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
this.addEventListener("load", function() {
var message = {"status" : this.status, "responseURL" : this.responseURL}
webkit.messageHandlers.handler.postMessage(message);
});
open.apply(this, arguments);
};
目前,没有办法拦截 webview 内部 API 调用。
您可以在 webview 中添加对此的支持
在android中你必须使用
WebViewClient.shouldInterceptRequest()
您可以添加桥接方法REF
我认为您可以通过设置(WiFi)代理来检查/记录网络请求: