react-native - React Native WebView 中的 Javascript console.log()
问题描述
我的 React Native 应用程序中有一个 WebView,我需要显示在我的 React Native 应用程序内的 WebView 中执行的 Javascript 的日志。
我认为我需要使用 WebView 的nativeConfig
道具来实现这一点,但我不知道如何使它工作。
这是我最近的尝试:
<WebView
nativeConfig={{
props: {
webContentsDebuggingEnabled: true,
console: new MyLogger()
}
}}
...
class MyLogger {
log = message => {
console.log(message); // Print in RN logs for now...
};
}
任何帮助将不胜感激。
解决方案
好吧,我终于明白了。我只需要向 WebView 注入一些代码,并让它使用我自己的控制台版本。
const debugging = `
// Debug
console = new Object();
console.log = function(log) {
window.webViewBridge.send("console", log);
};
console.debug = console.log;
console.info = console.log;
console.warn = console.log;
console.error = console.log;
`;
<WebView
injectedJavaScript={debugging}
onMessage={this.onMessage}
然后我在 onMessage 函数中获取控制台日志。
推荐阅读
- php - codeigniter website in php not working when moved to different folder
- typescript - Nuxtjs using typescript has problem with using meta
- sql - 选择随机和独特的项目 SQL
- iiif - 清单未在查看器上显示
- swift - TableView 在更新其宽度约束时意外自动滚动
- continuous-deployment - 如何编写一个从另一个 Bamboo 计划获取内部版本号的新 Bamboo 计划?
- javascript - 如何在javascript中将\"改回"?
- javascript - 尝试使用 PHP 循环 HTML 按钮并使用 querySelector 在 JS 中添加一个 EventListener 但只有第一个迭代按钮被选中
- python-3.x - 列表中的排列
- oracle - 2个表空间之间的数据迁移