从父级监听WebView中的console.logs

时间:2019-05-07 19:51:24

标签: javascript reactjs react-native

我有一个不受控制的网页,该网页将内容记录到控制台,并在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 }}
/>

我将不胜感激!谢谢。

0 个答案:

没有答案