"Uncaught TypeError: Свойство" touchLayer "функции объекта (селектор, контекст)" при использовании afui и jquery на phonegap
Я использую phonegap для развертывания веб-приложения, созданного в afui (Intel Appframework UI) для Android, но, когда я тестирую его в эмуляторе Android, консоль отладки показывает мне следующую ошибку после того, как я только запустил приложение:
Uncaught TypeError: Property 'touchLayer' of object function (selector, context)
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
} is not a function at file:///android_asset/www/ui/appframework.ui.js:3281
И все функции JavaScript отключены.
Я не могу понять, в чем проблема. Я протестировал приложение в Chrome поверх элементарной ОС, и оно отлично работает.
Я использую phonegap 3.1.0-0.15.0, jQuery 1.10.2 и App Framework UI 2.0.
Я импортирую файлы js в следующем порядке:
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script src="js/jq.appframework.js"></script>
<script type="text/javascript" charset="utf-8" src="ui/appframework.ui.js"></script>
Я надеюсь, что кто-нибудь может помочь мне найти решение этой проблемы.
1 ответ
У меня была такая же проблема. В конце концов, просмотрев index.html в кухонной раковине Appframework, я обнаружил, что для устранения ошибки вам понадобится следующий скрипт внутри приложения index.html:
var webRoot = "./";
$.ui.autoLaunch = false; //By default, it is set to true and you're app will run right away. We set it to false to show a splashscreen
/* This function runs when the body is loaded.*/
var init = function () {
$.ui.backButtonText = "Back";// We override the back button text to always say "Back"
window.setTimeout(function () {
$.ui.launch();
}, 1500);//We wait 1.5 seconds to call $.ui.launch after DOMContentLoaded fires
};
document.addEventListener("DOMContentLoaded", init, false);
$.ui.ready(function () {
//This function will get executed when $.ui.launch has completed
});
Я пока не знаю, зачем нужен этот код, но его использование здесь также задокументировано.