我有一个直接从客户端网站加载内容的科尔多瓦应用程序。我像<content src="https://example.com/ios/index.html">
在 config.xml 文件中一样使用它。我使用了 6 秒的启动画面延迟。问题是当启动画面隐藏时显示黑屏 5- 10 秒后显示客户端网站内容。有时我收到错误连接到服务器不成功。我也指定<preference name="loadUrlTimeoutValue" value="700000" />
但仍然有同样的问题。任何人对科尔多瓦 ios 和 android 应用程序有同样的问题吗?谁能帮忙我有这个问题。
问问题
414 次
1 回答
0
你不应该那样做。现在我不想在你问 A 而我告诉你做 B 的地方播放这个脚本,别担心,但这真的不是你应该做的方式。
您应该让 cordova 加载一个 index.html 来加载一个 javascript 文件cordova.js
。你不需要真正拥有它,js文件会在你编译应用程序时包含。
然后你应该添加白名单插件,以防你的网站正确加载。https://www.npmjs.com/package/cordova-plugin-whitelist
您应该在 config.xml 中禁用启动画面的自动隐藏,如下所示:
<preference name="AutoHideSplashScreen" value="false" />
然后,您应该让 javascript 像这样使用您的网站加载全屏 iframe,然后检测加载何时完成:(这应该进入您的 index.html,在cordova 应用程序中)
<html>
<head>
<title></title>
</head>
<body>
<iframe id='frameid' onload='iframeLoaded();' src='https://mywebsite.com/mypage.html' style='border: 0; width: 100%; height: 100%'>Your browser doesn't support iFrames.</iframe>
<script src='cordova.js'></script>
<script>
iframe = document.getElementById("frameid");
iframe = document.getElementById("frameid");
function ready(callback){
// in case the document is already rendered
if (iframe.readyState!='loading') callback();
// modern browsers
else if (iframe.addEventListener) iframe.addEventListener('DOMContentLoaded', callback);
// IE <= 8
else document.attachEvent('onreadystatechange', function(){
if (iframe.readyState=='complete') callback();
});
}
ready(function(){
setTimeout(function(){
navigator.splashscreen.hide();
},555)
});
</script>
</body>
</html>
我已经有几个月没有使用科尔多瓦了,但如果我没有忘记任何事情,我就是这样做的 - 希望我没有......我没有时间测试这个,但你明白了要点:
- 应用启动
- 显示启动画面
- 使用指向 https 网站的全屏 Iframe 加载 Index.html。
- 等待 iframe 完成加载。
- 关闭启动画面
如果您遇到任何问题,请告诉我,我可以进一步帮助您。
于 2021-05-27T14:01:46.737 回答