应用内浏览器未打开外部链接

时间:2019-10-01 03:18:58

标签: cordova ionic-framework cordova-plugins ionic4 inappbrowser

背景

我有一个通过Ionic 4(带有Angular)构建的应用程序,称为Cordova应用程序内浏览器插件。在初始屏幕之后,应用程序内浏览器将加载URL,该URL是移动响应网站。

该网站具有以下网址:

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

引用someotherdomain.comdomain.com/somefilename.pdf的链接通常在移动响应html代码中包含target="_blank"

问题

目前(通过iOS测试),应用内浏览器将不会打开任何target="_blank"网址。

我尝试过的

我尝试了不同的设置和参数console.log(),并通过ionic cordova build ios --prodionic serveionic 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);

问题

我如何:

  • 通过应用程序内浏览器完成的每次href链接点击是否都使用某种类型的window.alert()(以便更轻松地进行调试)?
  • 导致外部链接在系统浏览器中打开(现在,单击它们时什么也没发生)?

1 个答案:

答案 0 :(得分:0)

如果

InAppBrowser在cordova plugin add cordova-plugin-whitelist中列出,则使用 _blank 打开URL。我建议使用Apache Cordova Whitelist Plugin将您要打开的URL列入白名单。

  1. 添加Cordova插件

    config.xml

  2. <allow-intent>
  3. <allow-intent href="http://example.com/*" />标签中添加URL,例如

    $data['details']= PostAd::with(['category.child.children'])->where('id',$id)->first();