2014-09-11 3 views
8

Я создаю приложение Ionic в Angular и Ave, которое никогда не получало плагинов для работы.Плагины Cordova не работают с Ionic

В качестве примера, я попытался с помощью STATUSBAR плагин, как описано здесь:

http://ionicframework.com/tutorials/fullscreen-apps/

Но это все еще показывает в моем приложении. Я пробовал:

$ cordova plugin add org.apache.cordova.statusbar 

, а затем «кордова подготовка», «ионный запуск ios» и до сих пор не повезло.

Плагины я получаю перечисленные когда я типа

$ cordova plugin list 

com.ionic.keyboard 1.0.2 "Keyboard" 
org.apache.cordova.console 0.2.10 "Console" 
org.apache.cordova.device 0.2.11 "Device" 
org.apache.cordova.statusbar 0.1.7 "StatusBar" 

Я также с помощью Глоток. У меня есть папка со всеми моими разработчиками, и gulp перемещает и компилирует ее в папку/dist, откуда она подана. Я почти уверен, что плагины перемещены отлично, есть ли где-нибудь, где я должен проверять ссылки?

Любые идеи, если есть что-то, что вам нужно сделать, чтобы использовать плагины Кордовы с ионическим?

+0

Можете ли вы дать дополнительную информацию о шагах, которые вы выполните. Это означало работать с кордорой. Я догадываюсь, что ваше окружение неверно, или вы что-то так мало чего теряете. Это работает без добавления плагина. Thnx – engincancan

+0

Я добавил немного больше информации, есть ли какая-либо другая информация, которую вы могли бы использовать для диагностики? –

ответ

8

Ответ на это было то, что я должен был добавить

<script src="cordova.js"></script> 

на мою страницу, чуть выше моей sc ripts.

Обратите внимание: этот файл не существует во время разработки, его вводят во время выполнения ... вот почему я мог его решить. Надеюсь, это поможет кому-то!

+2

. Эта проблема преследовала меня за последнюю неделю. Спасибо! –

1

Я тестировал это на симуляторе Android и iPhone и работал правильно. Попробуйте этот код:

angular.module('starter', [ 
    'ionic', 
    'starter.controllers', 
    ... more modules here 
]) 
.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
     if (window.StatusBar) { 
      // org.apache.cordova.statusbar required 
      StatusBar.hide(); 
     } 
    }); 
}) 
.... more code 

EDIT:

$ cordova plugin add org.apache.cordova.statusbar 
$ ionic build ios 
$ ionic run ios 

EDIT II: (Попробуйте с новым проектом и iPhone Simulator)

$ ionic start testStatusBar tabs 
$ cd testStatusBar/ 
$ cordova plugin add org.apache.cordova.statusbar 
$ vim www/js/app.js 


Edit this: 
if(window.StatusBar) { 
    // org.apache.cordova.statusbar required 
    // StatusBar.styleDefault(); 
    StatusBar.hide(); 
} 

$ vim www/index.html 

add class="fullscreen" to the <body> element 


$ ionic platform add ios 
$ ionic build ios 
$ ionic emulate ios 
+0

К сожалению, это не работает для меня. есть ли у вас какие-либо другие ссылки на плагины в вашем приложении? –

+0

С некоторыми играми, и я не уверен, что было иначе, строка состояния теперь представляет собой белый текст. зеленая батарея все еще видна на белом фоне, поэтому это не идеально, это то, что вы получаете? –

+0

После заставки, когда приложение запущено, строка состояния полностью скрыта (нет времени, нет батареи и т. Д.) – manzapanza

4

Дополнительного решение, если в том числе cordova.js не решает проблему

Я была такая же проблема, но cordova.js уже была включена в моем index.html. window.plugins всегда не определено. Затем я заметил, что есть файл cordova_plugins.js внутри папки platforms/ios/www.

Вот что я сделал:

  1. $ cordova plugin add cordova-plugin-flashlight
  2. $ cordova prepare
  3. добавил <script src="cordova_plugins.js"></script> сразу после cordova.js внутри index.html

После того, что я мог бы получить доступ к переменной window.plugins.

ПОДСКАЗКА: взглянуть на ваш cordova_plugins.js и быть в курсе, что некоторые плагины прикреплены к cordova.plugins (например, клавиатуры плагин, смотрите ниже) другие прикреплены к window.plugins (например, фонарик)

Для справки - мой файл cordova_plugins.js выглядит так:

cordova.define('cordova/plugin_list', function(require, exports, module) { 
module.exports = [ 
    { 
     "file": "plugins/cordova-plugin-console/www/logger.js", 
     "id": "cordova-plugin-console.logger", 
     "clobbers": [ 
      "cordova.logger" 
     ] 
    }, 
    { 
     "file": "plugins/cordova-plugin-console/www/console-via-logger.js", 
     "id": "cordova-plugin-console.console", 
     "clobbers": [ 
      "console" 
     ] 
    }, 
    { 
     "file": "plugins/cordova-plugin-device/www/device.js", 
     "id": "cordova-plugin-device.device", 
     "clobbers": [ 
      "device" 
     ] 
    }, 
    { 
     "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", 
     "id": "cordova-plugin-splashscreen.SplashScreen", 
     "clobbers": [ 
      "navigator.splashscreen" 
     ] 
    }, 
    { 
     "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", 
     "id": "cordova-plugin-statusbar.statusbar", 
     "clobbers": [ 
      "window.StatusBar" 
     ] 
    }, 
    { 
     "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js", 
     "id": "ionic-plugin-keyboard.keyboard", 
     "clobbers": [ 
      "cordova.plugins.Keyboard" 
     ], 
     "runs": true 
    }, 
    { 
     "file": "plugins/cordova-plugin-flashlight/www/Flashlight.js", 
     "id": "cordova-plugin-flashlight.Flashlight", 
     "clobbers": [ 
      "window.plugins.flashlight" 
     ] 
    } 
]; 
module.exports.metadata = 
// TOP OF METADATA 
{ 
    "cordova-plugin-console": "1.0.1", 
    "cordova-plugin-device": "1.0.1", 
    "cordova-plugin-splashscreen": "2.1.0", 
    "cordova-plugin-statusbar": "1.0.1", 
    "cordova-plugin-whitelist": "1.0.0", 
    "ionic-plugin-keyboard": "1.0.7", 
    "cordova-plugin-flashlight": "3.0.0" 
} 
// BOTTOM OF METADATA 
}); 
Смежные вопросы