我正在开发一个ReactJS(不是React-Native)Android应用程序,在该应用程序中,我需要打开一个用于支付网关的Web视图(或该应用程序中的某种弹出窗口)。如果可能,我希望能够访问在此webview中打开的页面的html源,并注入javascript。
要执行上述操作,我正在尝试使用React-Native WebView组件-
//Removed all other reactj related code in the below simplified example
import { WebView } from 'react-native';
class App extends Component {
render() {return (<div className="App><WebView /></div>);}
}
当我运行“ npm start”时,上面的代码导致一堆“找不到模块”错误-
“输入错误 ./node_modules/react-native/Libraries/react-native/react-native-implementation.js 找不到模块:错误:无法解析“ AccessibilityInfo””
“输入错误 ./node_modules/react-native/Libraries/react-native/react-native-implementation.js 找不到模块:错误:无法解析'ActionSheetIOS'“
还有更多类似的错误。我尝试卸载并重新安装版本on stackoverflow,github等的react-native和babel-presets等各种组合,但无济于事。
还尝试在.babelrc中添加“ babel-preset-react-native”,但结果是-
“ ./ src / index.js中的错误,模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):TypeError:无法读取 在PluginPass.JSXOpeningElement中未定义的属性“文件名””
我的package.json代码段(不相关的内容已删除)-
"devDependencies": {
"@babel/cli": "^7.1.0",
"@babel/core": "^7.1.0",
"@babel/preset-env": "^7.1.0",
"@babel/preset-react": "^7.0.0",
"babel-preset-react-native": "^4.0.0",
"babel-loader": "^8.0.2",
},
"dependencies": {
"react": "^16.3.1",
"react-dom": "^16.3.1",
"react-native": "^0.55.4"
}
我的问题是-甚至可以像我尝试的那样在ReactJS类中使用React-Native WebView组件吗?如果没有,那么什么相当于WebView的ReactJS?