PhoneGap Admob, внешние ссылки ... Не могу заставить ни одного работать - PullRequest
7 голосов
/ 10 марта 2019

Я знаю, что здесь есть куча ответов относительно PhoneGap. Я прошел через все из них, и ни одно решение не сработало. Хотя, по общему мнению, любой из них должен. Многие из ответов настолько стары, что я сомневаюсь, что они уже действительны.

Мое приложение работает, компилируется, работает нормально. За исключением того, что я не могу заставить работать рекламу. Я попробовал AdMob первым. Объявления никогда не показываются. Поэтому я сказал: «Хорошо ... Я сделаю свое». Что было бы здорово, если бы клик по объявлению привел к открытию нового браузера. Я думал, что простая команда window.open () будет работать. Но нет. Этого не происходит. Мне нужно использовать плагин Cordova, чтобы заставить это работать.

Я использую PhoneGap-Build на сайте Adobe.

В моем config.xml у меня есть:

<gap:plugin name="cordova-plugin-inappbrowser" spec="~3.0.0" source="npm" />

Когда я обновляю источник, я вижу, что плагин показывает:

(со страницы PhoneGap) Версия источника плагина Установленные платформы cordova-plugin-inappbrowser npm ~ 3.0.0 3.0.0 android, ios, winphone

После 30 или около того попыток с различными вариантами этого, вот код JS, который я в последний раз пробовал:

document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
        window.open = cordova.InAppBrowser.open;
    }

    function navToMobile(where){
        var ref = cordova.InAppBrowser.open(where, '_system', 'location=yes');


        //These two lines are incorrect and causing errors.  The first doesn't do anything.  The second is only supposed to be called to show and existing window.  So the first line in this function is the only one that is needed.
        navigator.app.loadUrl(where, { openExternal:true });
        ref.show();

    }

Вызов функции для «navToMobile (где)» отправляет URL-адрес для «где».

Есть 2 разных метода в этой функции, которые должны работать, согласно предыдущим ответам. У меня есть они оба там, надеясь, что только один из них будет работать ...

Когда это работает, ничего не происходит. Я установил приложение на эмуляторе, чтобы я мог видеть журнал cat. Это говорит мне о том, что «Кордова недоступна». Это говорит мне, что библиотека не компилируется в приложение.

Из того, что я понял, если бы я делал это без "build PhoneGap", у меня была бы библиотека cordova.js как часть моего проекта. Но я подумал, что это ссылка в config.xml для ...

В любом случае ... Я подозреваю, что то же самое происходит с AdMob. Я все настроил в соответствии с инструкциями, я создал новое рекламное объявление с идентификатором в AdMob ... И реклама никогда не показывается.

Если у кого-нибудь есть идеи, как заставить работать любой из этих методов, это было бы замечательно.

РЕДАКТИРОВАТЬ: я редактирую этот ответ, чтобы показать, каково окончательное решение.

Как упоминает Декстер в своем ответе, необходимо сделать ссылку на файл cordova.js, без которого ни один из компонентов плагина не будет работать. Было бы хорошо, если бы они упоминали об этом где-нибудь в своих документах. Они никогда не упоминают, что ссылка необходима, потому что ОНИ встраивают ее во время компиляции. Вам не нужно иметь этот .js как часть вашего проекта.

При этой работе я получал ошибки. Я знал, что это может быть проблемой, потому что у меня было 3 разных строки кода, и я не был уверен, что сработает.

Я отредактировал функцию в приведенном выше коде, чтобы показать правильный вызов.

1 Ответ

4 голосов
/ 21 марта 2019

Похоже, у вас нет <script src="cordova.js"></script> в вашем index.html, этот файл добавлен Cordova во время сборки и необходим для работы плагинов.

...