我有一个不受控制的网页,该网页将内容记录到控制台,并在WebView
中运行。我想捕获这些日志并在来宾(我的React Native应用)中维护它们的列表。
我无法控制代码,因此仅使用postMessage
而非console.log
是不可行的。我的想法之一就是使用Proxy
,就像这样:
window.console = new Proxy(window.console, {
get: (object, key) => {
alert(`console.${key} called`)
return object[key]
}
})
...,然后将代码注入到WebView
中(我最终可以将alert
更改为postMessage
。这没有做任何事情,也没有警报显示。 alert(1)
在注入的代码中显示出来,因此代码注入一切都很好。我还尝试用try / catch块将其包围,也没有显示错误。
这是我的WebView
,对我来说看起来很正常:
<WebView
useWebKit={true}
originWhitelist={[ '*' ]}
source={{ uri: this.state.url }}
/>
我将不胜感激!谢谢。