2013-08-07 1 views
0

Когда я пытался запустить хотя бы пустое приложение, консольный вывод: «Ошибка вызова js для запуска события nativeReady. Включили ли вы cordova.js в свой тег скрипта html?»Как использовать (phonegap, angularjs и jquery mobile) для Windows Phone 8?

Doctype является:

<!DOCTYPE html> 

И это есть ссылки сценария:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta name="format-detection" content="telephone=no" /> 
    <meta name="viewport" content="initial-scale=1, width=device-width, height=device-height" /> 
    <link rel="stylesheet" href="css/jquery.mobile.structure-1.3.0.min.css" /> 
    <link rel="stylesheet" type="text/css" href="css/index.css" /> 

    <script type="text/javascript" src="js/jquery.min.js"></script> 
<script type='text/javascript' src='js/angular.min.js'></script> 
<script type='text/javascript' src='js/angular-ui.js'></script> 
<script type='text/javascript' src='js/jqm-setup.js'></script> 
<script type="text/javascript" src="js/jquery.mobile.js"></script> 
<script type="text/javascript" src="js/jquery-mobile-angular-adapter.min.js"></script> 
    <script type="text/javascript" src="cordova-2.5.0.js"></script> 
    <script type="text/javascript" src="js/index.js"></script>--> 

Эта ошибка исчезает только тогда, когда я удалить JQuery мобильного материал ... Спасибо заранее.

+0

В настоящее время jQuery mobile не работает для приложения window-phone-8 –

ответ

1

Я бы избегал JQuery Mobile в приложениях PhoneGap. Я познакомился с Эндрю Трисом, евангелистом Adobe PhoneGap, на встрече DC Droid и слушал его, присутствуя на нескольких веб-семинарах. Я слышал, как он неоднократно говорил о том, что JQuery Mobile имеет огромные проблемы с производительностью. Он рекомендовал, если возможно, использовать другие рамки. Есть много других фреймворков с хорошим дизайном, виджетами и образцами, которые облегчают их изучение. Я думаю, что он даже создал свой собственный под названием AppUI. Просто осмотритесь, и вы найдете действительно классные.

0

Эта ошибка, безусловно, то, что она говорит: ваш файл cordova.js не включен правильно. Исправьте это в первую очередь.

Чтобы ответить на ваш более крупный вопрос: угловые, jQuery Mobile и PhoneGap будут играть вместе, но в нем есть некоторые большие оговорки.

Самая большая проблема заключается в том, что адаптер jQuery Angular Mobile в настоящее время заброшен, в то время как они инвестируют время в построение лучшего решения: angular-jqm. Это означает, что адаптер работает только с устаревшими версиями библиотек.

Во-вторых: эти устаревшие версии библиотеки имеют некоторые проблемы с Windows Phone. Они также могут быть исправлены, но блокируют вас в еще более удобной для них версии.

Так вот установка:

<script src="javascripts/vendor/jquery-mobile-1.3.1.js"></script> 
<!-- this angular-1.0.6 includes a patch to support WP8 URLs: https://github.com/angular/angular.js/issues/2303 --> 
<script src="javascripts/vendor/angular-1.0.6.js"></script> 
<script src="javascripts/vendor/jquery-angular-mobile-adapter-1.3.2.js"></script> 

К сожалению, я никогда не был в состоянии получить обертоны, чтобы загрузить через XHR поэтому я включил все страницы index.html документа.

<body ng-controller="AppController"> 
    <div data-role="page" id="first" ng-controller="FirstController"> 
    <h1>First Page</h1> 
    <p>{{foo}}</p> 
    <p><a href="#/second">Second Page</a></p> 
    </div> 
    <div data-role="page" id="second" ng-controller="SecondController"> 
    <h2>Second Page</h2> 
    </div> 
</body> 

Затем вам необходимо выключить несколько тонкостей в JavaScript и установить ваши маршруты:

<script> 
var so_example = angular.module('so_example', []). 
    config(function ($routeProvider, $locationProvider, $compileProvider) { 
    // turn off html5 mode so that we just navigate around using hashes 
    $locationProvider.html5Mode(false).hashPrefix(""); 
    // allow for the odd URLs included in Windows Mobile PhoneGap 
    $compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel|x-wmapp0):/); 

    $routeProvider. 
     when('/second', { 
      templateUrl: '#second', 
      jqmOptions: { transition: 'slide' } 
     }). 
     when('/', { 
      templateUrl: "#first" 
     }); 
    }). 
    controller("FirstController", function ($scope) { 
    $scope.foo = "Hello, World!"; 
    }). 
    controller("SecondController", function ($scope) { 
    }); 
</script> 

Теперь вам нужно использовать библиотеку Кордова, прежде чем самонастройки Угловое к вашему HTML:

var app = (function() { 
    function onDeviceReady() { 
    angular.bootstrap(document, ['so_example']); 
    $.mobile.phonegapNavigationEnabled = true; 
    } 

    return { 
    initialize: function() { 
     document.addEventListener('deviceready', onDeviceReady, false); 
    } 
    }; 
})(); 
app.initialize(); 
Смежные вопросы