Как открыть внешнюю ссылку в приложении Meteor angular ios?

У меня есть угловое мобильное приложение Meteor (v 1.2.0.2), и мне нужна ссылка на внешнюю веб-страницу, но ссылки на Android и iOS не открываются. Изучив этот вопрос, я обнаружил, что могу добавить плагин Cordova под названием AppBrowser.

Как получить ссылки для открытия в родном браузере в приложениях iOS Meteor?

Я использовал это из одного из ответов, чтобы добавить плагин inAppBrowser

добавьте кордову: cordova-plugin-inappbrowser @ https://github.com/apache/cordova-plugin-inappbrowser/tarball/bc9036d90a1f3f2220b5fc29b77cf2405e7fd781

После этого моя ссылка работала на моем Android, но не на моем Ipad.

Вот мой HTML

<a ng-click="adClick(pageAd.link, pageAd._id)">
    <img ng-src="/images/ads/{{pageAd.src}}" alt="{{pageAd.alt}}" />
</a>

и функция в моем контроллере

$scope.adClick = function(url, adId)
{
  $meteor.call("incrementAdCount", adId).then(
    function(data){
      window.open(url, "_system");
    },

    function(error) {

    }

  );

}

На ipad мой метод подсчета объявлений работает каждый раз, когда я нажимаю, но window.open, похоже, ничего не делает. На андроиде все работает.

Есть ли какие-либо дополнительные настройки, которые мне нужно сделать для inAppBrowser в метеоре, чтобы работала ссылка ios? Я чувствую, что все должно быть просто, но после нескольких часов поисков я почти ничего не могу найти по этому поводу для метеора, так что, возможно, я ищу не в тех местах.

Я также попытался использовать угловой $ window.open, который также работал на Android, но не IOS.

Я решил исследовать плагин Cordova, так как я мало что мог найти при поиске метеора. В readme плагина cordova inAppBrowser я нашел это:

"Если вы хотите, чтобы все загрузки страниц в вашем приложении проходили через InAppBrowser, вы можете просто подключить window.open во время инициализации. Например:"

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

Но везде, где я использую переменную cordova в моем метеорологическом проекте, она не определена. Это даже доступно в Метеоре? И если мне нужно было сделать это, почему он работал в Android, не делая этого?

Мой главный вопрос: что еще мне нужно сделать, чтобы открыть ссылку в мобильном приложении IOS?

1 ответ

Я разобрался с решением. Я начал просматривать папку сборки Cordova (я подумал, что мне не нужно ничего там менять, а просто выяснить, что я осмотрел). Я увидел, что там было 2 папки с моим именем проекта, но одна была старым именем, которое у меня было для проекта (я недавно переименовал его).

Я понял, что когда я делаю мобильную сборку из метеора, она не удаляет старые файлы, а просто перезаписывает файлы, которые генерирует новая сборка. У меня было несколько папок и файлов в сборке, которые все еще были в предыдущих сборках. Поэтому я удалил всю мобильную сборку вместо того, чтобы просто перезаписать ее и пересоздал проект, и моя ссылка ios сработала!

Похоже, xcode использовал некоторые из старых файлов, когда я создавал свой проект, и в старой конфигурации не было inAppBrowser, поэтому он не работал.

Другие вопросы по тегам