Внешние плагины для настольного приложения Phonegap

Удалось ли кому-нибудь добавить внешние плагины в настольное приложение Phonegap? Мне удалось добавить основные плагины, такие как «Устройство», но не внешние. Я пытаюсь добавить com.admob.google в свой проект и не могу заставить admob распознаваться как команду. В config.xml добавляю:

<gap:plugin name="com.admob.google" source="plugins.cordova.io" />

И в моей функции deviceReady в моем файле .js у меня есть:

try{
    admob.requestInterstitialAd(); //or any other admob command
}
catch(err){
    alert("admob not loaded");
}

Каждый раз на моем устройстве (через приложение Phonegap Developer) я получаю предупреждение о том, что «admob не загружен».

Я смешиваю команды Phonegap и Phonegap Build?

Настольное приложение Phonegap Build еще не поддерживает автоматическое включение внешних плагинов?


person Dom    schedule 22.12.2014    source источник
comment
Включение плагинов через config.xml работает только для PGBuild.   -  person Dawson Loudon    schedule 22.12.2014


Ответы (2)


Я автор плагина, который вы пытаетесь использовать. Похоже, вы используете интерфейс командной строки, который пока не имеет никакой автоматизации в ‹gap:plugin ...› (и я не уверен, что он появится в ближайшем будущем).

Как говорит Санфор, если вы используете CLI Phonegap, вы должны добавить каждый плагин вручную:

phonegap local plugin add cordova-admob

Или, если вы используете Cordova:

cordova plugin add cordova-admob

Если вы используете Phonegap Build, вы должны поместить тег в config.xml:

<gap:plugin name="cordova-admob" source="npm" />

В этом случае вы также можете следовать инструкциям на странице https://github.com/appfeel/admob-phonegap-build-demo.git, чтобы протестировать демонстрационное приложение в своей учетной записи Phonegap Build.

Не забывайте всегда использовать admob после запуска события deviceready:

function onAdLoaded(e) {
  if (e.adType === admob.AD_TYPE.INTERSTITIAL) {
    admob.showInterstitialAd();
  }
}

function onDeviceReady() {
  document.removeEventListener('deviceready', onDeviceReady, false);

  // Set AdMobAds options:
  admob.setOptions({
    publisherId:          "YOUR_PUBLISHER_ID",                  // Required
    interstitialAdId:     "YOUR_PUBLISHER_OR_INTERSTITIAL_ID",  // Optional
  });

  // Start showing banners inmediately:
  admob.createBannerView();

  // To show an interstitial, call admob.showInterstitialAd() when onAdLoaded is fired:
  document.addEventListener(admob.events.onAdLoaded, onAdLoaded, false);
  admob.requestInterstitial();

  // You could also request and show an interstitial like this:
  // admob.requestInterstitialAd({ autoShowInterstitial: true});
}

document.addEventListener('deviceready', onDeviceReady, false);

Интересно знать, тестируете ли вы с помощью CLI, чтобы позже использовать PGB. Однако я не уверен, поможет ли это макету функциональности admob. Дайте мне знать, если это ваш случай. Единственная ситуация, которая приходит мне на ум, это то, что вы хотели бы протестировать приложение в десктопном браузере, где плагины не поддерживаются. Но даже в этом случае я бы посоветовал вам использовать инкубатор ripple из github (или даже weinre, но если вы находитесь на Mac, лучше использовать инструменты разработчика Safari).

ИЗМЕНИТЬ 22 апреля 2016 г.

Обновлены старые ссылки на плагины на новейшие и источник npm для сборки phonegap.

person Miquel    schedule 22.12.2014
comment
Я использовал настольное приложение Phonegap (phonegap.com/blog /2014/12/11/phonegap-desktop-app-beta), который, как я выяснил, является версией CLI с графическим интерфейсом и в настоящее время не поддерживает внешние подключаемые модули. В итоге я использовал свой проверенный метод сборки с помощью Phonegap Build и настройки в вашем плагине через config.xml, и мне удалось заставить его работать. Кстати, отличный плагин, очень простой в использовании и с множеством функций/методов. - person Dom; 23.12.2014
comment
Столкнулись с этой проблемой, можете ли вы помочь нам решить ее? stackoverflow.com/questions/36775178 / - person Haris; 21.04.2016
comment
извините, это не связано, поэтому я спросил, можете ли вы помочь нам, как я думал, вы могли бы быть в состоянии. - person Haris; 22.04.2016
comment
@Харис о! извините, я просматривал вопрос, чтобы увидеть, но я использую Mac, а также прошло много времени, когда я не использовал рабочий стол phonegap, обычно я использую phonegap serve (в cli) при разработке и отладке в браузере. phonegap serve — хороший вариант, даже если у него нет доступа ко всем нативным плагинам (он эмулирует их поведение). Когда есть RC, я создаю приложение и тестирую его на реальном устройстве. Это мой опыт :) - person Miquel; 22.04.2016
comment
спасибо, Микель, я тоже перешел на cli, и это не вызвало никаких проблем - person Haris; 22.04.2016

Я не эксперт, но у меня это не работает. Я думаю, вы действительно смешиваете конфигурации PG и PGB (gap:plugin). Поскольку мне не повезло с получением этих работ (полагаю, вам нужно будет добавить их через CLI), я могу только предложить, что я сделал: макет те плагины, которые не существуют по умолчанию. Например, вы можете определить объект admob с доступными вам необходимыми функциями.

person Roope Hakulinen    schedule 22.12.2014