几个月前,我使用 Cordova/Phonegap 开发了一个小型 ReactJS 应用程序,它实际上可以工作,所以我认为您错过了一些细节以使您的应用程序正常工作。
首先,你在启动 ReactJS 之前是否等待了 deviceready 事件?
你的入口点应该是这样的(代码相当旧,我在旧的 AngularJS 应用程序中使用它,并将其调整为引导 ReactJS )
var appName = 'myApp';
var PhoneGapInit = function (appName) {
this.boot = function (appName) {
ReactDOM.render(
<Router>
<Route exact path="*" component={ApplicationAsync} />
</Router>,
document.getElementById('root')
);
};
if (window.cordova !== undefined) {
// "Found Cordova";
var self = this;
document.addEventListener('deviceready', function() {
self.boot(appName);
}, false);
return;
}
// 'PhoneGap not found, booting manually';
this.boot(appName);
};
window.addEventListener('load', () => {
new PhoneGapInit(appName);
});
其次,使用 Webpack 我发现有必要使用这个 webpack 插件来使 cordova 对象可用,https://github.com/markmarijnissen/webpack-cordova-plugin https://github.com/markmarijnissen/webpack-cordova-plugin(一切都在那里解释)
此外,你的index.html应该包含一个像这样的body标签
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<script type="text/javascript" src="cordova.js"></script>
</body>
第一步应该足以让您的应用程序运行。
另外,重要的是要知道使用 Chrome 可以访问控制台来查看应用程序中发生的情况,只需按照以下步骤操作
- 连接已安装应用程序的设备(必须
DEBUG 版本,不是发布版本)
- 打开 Chrome 控制台,在最后一个选项卡附近您应该会看到
三个垂直点图标,单击它并选择“更多工具”,然后
“远程设备”,您应该会看到列出的已连接设备。选择
它
- 在列表中找到您的应用程序,然后单击“检查”按钮,
此时,您还应该在 Chrome 浏览器中打开您的应用程序。
希望能帮助到你