5

我有一个带有 url 的 webview(例如支付处理页面)。加载 url 后,某些 api 调用已完成,我想知道如何从该特定 url 的内部 api 调用中获取数据。

它不像网页和反应原生代码之间的通信。(window.ReactNativeWebView.postMessageonMessage)我需要来自网页的内部 api 调用响应数据。

4

2 回答 2

2

解决方案1:

您可以将 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);
};

解决方案2:

目前,没有办法拦截 webview 内部 API 调用。

您可以在 webview 中添加对此的支持

安卓

在android中你必须使用 WebViewClient.shouldInterceptRequest()

您可以添加桥接方法REF

于 2021-08-30T05:54:29.973 回答
0

我认为您可以通过设置(WiFi)代理来检查/记录网络请求:

于 2021-08-30T12:22:26.297 回答