使用cordova将Angular应用程序转换为android。apk在模拟器上启动,但实际设备上只显示一个空白的白色屏幕
我正在使用cordova将angular应用程序转换为android应用程序。转换后的apk文件出现在模拟器上。但当我在实际设备上安装并运行它时,它只显示一个白色的空白屏幕。等了很长时间,但一直没有出现。我对cordova和android是新手,非常感谢您的帮助 甚至SampleHelloWorld应用程序也不会出现在设备上 随后采取了一些步骤 1) ng新地狱世界 2) cd HelloWorld 3) make in index.html 4) ng构建——prod 5) 在同一文件夹中,通过执行cordova create mobile app com.example.hello OurFirstApp 5)cd mobile app创建cordova项目,并将所有角度输出文件复制到cordova www目录,即del-r www;cp-r../dist/HelloWorld/*www 6) cordova平台添加android 7) cordova构建android 8) cordova Simulate android-->应用程序出现在模拟器上 要在我下面做的设备上运行这个 9) cordova构建——发布android 10) cd平台\android\app\build\outputs\apk\release 11) keytool-genkey-v-keystore helloappworld.keystore-alias helloappworldmabileapps-keyalg RSA-keysize 2048-validity 10000 12) jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore helloappworld.keystore app-release-unsigned.apk helloappworldmobileapps 13) zipalign-v 4 app-release-unsigned.apk app-release-signed.apk 14) 然后我将app-release-signed.apk上传到我的谷歌硬盘,并尝试安装,然后打开。它提供了一个白色的空白屏幕 angular cli版本为8.3.19。Cordova版本是9.0.0,github repo是github.com/ruksan/AngularHelloWorld.git,原因可能是Cordova和Zone.js是monkey patching window.addEventListener和document.addEventListener.Cordova,正在将一个新函数分配给那些将Zone.js踢出的方法,因此更改检测不再起作用。解决这个问题的一种方法是恢复以前的原型继承,如下所示使用cordova将Angular应用程序转换为android。apk在模拟器上启动,但实际设备上只显示一个空白的白色屏幕,android,angular,cordova,Android,Angular,Cordova,我正在使用cordova将angular应用程序转换为android应用程序。转换后的apk文件出现在模拟器上。但当我在实际设备上安装并运行它时,它只显示一个白色的空白屏幕。等了很长时间,但一直没有出现。我对cordova和android是新手,非常感谢您的帮助 甚至SampleHelloWorld应用程序也不会出现在设备上 随后采取了一些步骤 1) ng新地狱世界 2) cd HelloWorld 3) make in index.html 4) ng构建——prod 5) 在同一文件夹中,通
(function () {
'use strict';
window.addEventListener = function () {
EventTarget.prototype.addEventListener.apply(this, arguments);
};
window.removeEventListener = function () {
EventTarget.prototype.removeEventListener.apply(this, arguments);
};
document.addEventListener = function () {
EventTarget.prototype.addEventListener.apply(this, arguments);
};
document.removeEventListener = function () {
EventTarget.prototype.removeEventListener.apply(this, arguments);
};
})();
第二种方法是对包含
cordova.js
的方式进行重新排序 在tsconfig.json中做了以下更改,并且成功了
“目标”:“es5”
非常感谢@Nidhin Joseph在这方面的帮助您将
添加到index.html的head标记中。
屏幕空白问题将得到解决。我不清楚应该在哪里添加上述代码。在转换后的cordova项目中,有一个index.js文件,它的var app={//Application Constructor initialize:function(){document.addEventListener('devicerady',this.ondevicerady.bind(this),false);}。我用给定的gode替换了此函数的主体。现在它说连接到设备。然后我只是将代码添加到主体中,保留现有代码。现在它说“设备已准备就绪”,但应用程序屏幕仍然没有显示。在包含cordova.js脚本后,需要执行上述脚本。尝试了此操作。但运气不佳。是否有人已经这样做了,谁可以共享转换为android的hello world amgular应用程序的代码并在物理设备上工作。非常感谢。谢谢!您的答案不是这个问题的完整解决方案。出现这种情况时,您必须将其作为注释输入。