2015-09-15 4 views
0

Я новичок в Ионном и Кордове. Я пытаюсь добавить плагин,use cordova плагины внутри ионного проекта

1.Created ионного приложение с использованием "ionic start myproj"

2.Added Cordova плагиной с помощью follwoing комментария

cordova plugin add https://github.com/domaemon/org.apache.cordova.plugin.helloworld.git 

3.Added navigator.helloworld.say(); внутри ионного app.js как нижеперечисленный

.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 


    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     cordova.plugins.Keyboard.disableScroll(true); 

    } 
    if (window.StatusBar) { 
     // org.apache.cordova.statusbar required 
     StatusBar.styleLightContent(); 
    } 

    navigator.helloworld.say(); 
    }); 
}) 

, когда я бег кода через «ионный служить» .. Я не получаю предупреждение привета, но я получаю ВОЛП ошибка нижнего уровня в консоли, как показано ниже

«не может прочитать свойство« тип »неопределенного для линии navigator.helloworld.say();

Пожалуйста, дайте мне знать, нужно ли мне добавлять какие-либо записи в любой xml для добавления плагинов в mannual или мне что-то не хватает?

+1

Вы не навигатор, так как вы тестируете приложение в браузере. – LeftyX

ответ

2

Плагины работают только на реальном устройстве или эмуляторе, потому что им нужен cordova.js, который доступен только при запуске приложения на устройстве или эмуляторе. Смотрите эту строку вашего index.html:

<!-- cordova script (this will be a 404 during development) --> 
     <script src="cordova.js"></script> 

cordova.js включает все плагин JS для вашего приложения. См. Это answer для более подробной информации.

0

Первое решение: 1. убедитесь, что этот плагин обернут http://ngcordova.com/.

Второе решение: 2. написать обертка = угловой завод:

.factory('factoryname', ['$q', '$window','$state', function ($q, $window, $state) { 
return { 
callStateListener: function() { 
      var q = $q.defer(); 

      if (!$window.cordova) { 
       q.reject('Not supported without cordova.js'); 
      } else { 
       navigator.helloworld.say(); 
      return q.promise; 
      }, 

3-я решение: добавить [ '$ окна'] зависимость к модулю вы хотите использовать плагин. и используйте navigator.helloworld.say();

4-й вариант копирует и вставляет этот код js в ваш угловой код поверх него и использует helloworld.say();

0

Плагины Cordova не работают при разработке в вашем браузере, потому что каждый плагин обращается к определенному API (например, к камере, микрофону, акселерометру), который недоступен в вашем браузере. Кроме того, некоторые плагины не работают в эмуляторе, например плагин камеры, поэтому требуется разработка на вашем физическом устройстве.

http://forum.ionicframework.com/t/can-not-use-cordova-plugins-inside-ionic-project/32459/4

Смежные вопросы