In-App Browser не открывает внешние ссылки - PullRequest
0 голосов
/ 01 октября 2019

Фон

У меня есть сборка приложения через Ionic 4 (w / Angular), вызывающая плагин для браузера Cordova в приложении. После заставки браузер в приложении загружает URL-адрес, отвечающий требованиям мобильных устройств.

Этот веб-сайт имеет такие URL-адреса, как:

  • domain.com / somepath
  • domain.com / somepath / somepage.html
  • domain. com / somefilename.pdf
  • someotherdomain.com

Ссылки, которые ссылаются на someotherdomain.com или domain.com/somefilename.pdf, обычно содержат target="_blank" в html-коде, реагирующем на мобильные устройства.

Проблема

В текущем состоянии (тестирование через iOS) браузер в приложении не открывает ни один из target="_blank" URL-адресов.

То, что я пробовал

Я пробовал разные настройки и параметры, console.log() и тестирование через ionic cordova build ios --prod, ionic serve и ionic cordova run browser.

  openWebpage(url: string) {
    const options : InAppBrowserOptions = {
        location                            : 'yes' 
        ,footer                             : 'no'
        ,hidenavigationbuttons              : 'yes'
        ,hidden                             : 'no'  
        ,hideurlbar                         : 'no'
        ,useWideViewPort                    : 'yes'
        //,clearsessioncache                : 'yes' 
        //,cleardata                        : 'yes'
        //,clearcache                       : 'yes' 
        ,zoom                               : 'no'            // Android only, shows browser zoom controls
        ,hardwareback                       : 'no'  
        ,mediaPlaybackRequiresUserAction    : 'no'  
        ,shouldPauseOnSuspend               : 'no'            // Android only
        ,closebuttoncaption                 : 'Close'         // iOS only
        ,disallowoverscroll                 : 'no'            // iOS only
        ,toolbar                            : 'yes'           // iOS only
        ,enableViewportScale                : 'yes'           // iOS only
        ,allowInlineMediaPlayback           : 'yes'           // iOS only
        ,presentationstyle                  : 'fullscreen'    // iOS only
        ,usewkwebview                       : 'no'
        ,toolbarposition                    : 'top'
        ,fullscreen                         : 'yes'           // Windows only
    };


    const browser = this.inAppBrowser.create(url,'_self',options);

Вопрос

Как можноI:

  • сделать какой-нибудь тип window.alert() для каждого клика по ссылке href, выполняемого через браузер в приложении (для более легкой отладки)?
  • вызывает открытие внешних ссылок в системебраузер (прямо сейчас, когда они нажимаются, ничего не происходит)?

1 Ответ

0 голосов
/ 01 октября 2019

InAppBrowser использует _blank , чтобы открыть URL, если он указан в whitelist. Я бы предложил использовать Apache Cordova Whitelist Plugin для внесения в белый список URL-адресов, которые вы хотите открыть.

  1. добавить плагин Cordova

    cordova plugin add cordova-plugin-whitelist

  2. в config.xml добавить <allow-intent> теги с URL, например

    <allow-intent href="http://example.com/*" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...