【发布时间】:2015-03-01 17:24:21
【问题描述】:
我用 jquery mobile 和 jquery 在 cordova 4.0 中编写了一个应用程序,当我尝试在 Galaxy 2 上使用 android 2.3.5(姜饼)运行该应用程序时,我得到的只是白屏,没有任何错误或发生任何事情.
注意:我从 javascript 中捕获任何异常并提醒它们,所以如果有异常我应该会看到一条消息。但是什么都没有。
知道为什么吗? Cordova 是否应该在 android 2.x 上正常工作?我发现关于该主题的不同意见...
谢谢!
编辑:添加源代码。请注意,我有包装科尔多瓦的 js,所以 utils.* 下的所有内容都是科尔多瓦的包装层。这是 index.html,应该加载的第一页。我想说的另一件事是我添加了一个代码来捕获和警告任何异常(window.onerror = function(message, url, lineNumber)...)并提醒它们,它通常可以工作,但在这种情况下我看不到警告。
<!DOCTYPE html>
我们加载的部分页面不起作用。
-->
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<!-- <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- My extensions to jquery-mobile css -->
<link rel="stylesheet" type="text/css" href="css/my-jquerymobile-extend.css" />
<!-- all basic css -->
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.min.css" />
<link rel="stylesheet" type="text/css" href="css/msgbox.css" />
<link rel="stylesheet" type="text/css" href="css/intro.css" />
<link rel="stylesheet" type="text/css" href="css/splash.css" />
<link rel="stylesheet" type="text/css" href="css/main.css" />
<link rel="stylesheet" type="text/css" href="css/result_page.css" />
<link rel="stylesheet" type="text/css" href="css/intlTelInput.css" />
<title>SeekWhale</title>
<!-- include cordova and jquery -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="telephonenumber.js"></script>
<script type="text/javascript" src="js/jquery/jquery.2.1.1.min.js"></script>
<script type="text/javascript" src="js/jquery/custom_loading_gif.js"></script>
<script type="text/javascript" src="js/jquery/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui-draggable.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery.ui.touch-punch.min.js"></script>
<!-- Include utils -->
<script type="text/javascript" src="js/utils/config.js"></script>
<script type="text/javascript" src="js/utils/flags.js"></script>
<script type="text/javascript" src="js/utils/ajax.js"></script>
<script type="text/javascript" src="js/utils/debug.js"></script>
<script type="text/javascript" src="js/utils/visuals.js"></script>
<script type="text/javascript" src="js/utils/device.js"></script>
<script type="text/javascript" src="js/utils/contacts.js"></script>
<script type="text/javascript" src="js/utils/events.js"></script>
<script type="text/javascript" src="js/utils/navigation.js"></script>
<script type="text/javascript" src="js/utils/phone_numbers.js"></script>
<script type="text/javascript" src="js/utils/prompt.js"></script>
<script type="text/javascript" src="js/utils/forms.js"></script>
<!-- Replace UI language with chosen language -->
<script type="text/javascript" src="js/languages/dictionary.js"></script>
<script type="text/javascript" src="js/languages/hebrew.js"></script>
<!-- function to init pages -->
<script type="text/javascript" src="js/init_page.js"></script>
</head>
<body data-role="page">
<img class="splash" src="img/bg-entry.png"></img>
<script type="text/javascript">
// set language
ui_dictionary.set_dictionary_words();
// called when cordova is ready to run page init script
function InitApp()
{
setTimeout(function()
{
utils.prompt.log("app started!");
var effect = utils.navigation.transition.slidedown;
// if should skip directly to main
if (utils.flags.skip_to_main)
{
utils.prompt.log("skip to main page");
utils.navigation.load_page(utils.config.get_last_page(), effect);
}
// if require first setup open the first setup page:
else if (utils.config.get_successfully_registered() == false)
{
utils.prompt.log("load register");
utils.navigation.load_page("register.html", effect);
}
// if registered but not confirmed, go to confirm page
else if (utils.config.get_is_device_confirmed() == false)
{
utils.prompt.log("load confirm page");
utils.navigation.load_page("confirm.html", effect);
}
// if all goes well, open the main page!
else
{
utils.prompt.log("load main page");
utils.navigation.load_page("main.html", effect);
}
}, 1);
}
utils.events.on_device_ready(InitApp);
</script>
</body>
【问题讨论】:
-
在此处显示您的代码。
-
您是否在浏览器或其他设备/模拟器上测试过您的代码?如果 Cordova 和 Android 2.x 之间存在任何兼容性问题,您将首先被阻止安装该应用程序。一定是语法错误导致了这种情况。检查浏览器/ADB 中的控制台日志,或者像上面说的 Dato 一样,向我们展示您正在运行的代码。
-
你好 Keval,Dato,我添加了 index.html 的源代码,基本上它只包含所有 javascripts 并加载下一页。没什么。这些应用程序可以在多个 android 设备上运行,但它们都有 Jelly Bean 或更高版本。我从来没有在网络上尝试过。 PS。我最后一次遇到这个白屏死机(只是白屏没有任何事情发生)是当我遇到一个插件问题时,重新安装它们修复了它。目前我只有 Contacts 插件和 com.simonmacdonald.telephonenumber 插件(我暂时禁用了所有其他插件)
-
对此有任何解决方案吗?我在 iOS 9 beta 版本中遇到了这个组合问题。 Jqm 1.4.0 & jQ 2.0.1
-
@Brune 不,刚刚放弃了姜饼支持。但可能有一个解决方案我只是没有寻找很长时间。
标签: android jquery cordova jquery-mobile android-2.3-gingerbread