You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "jcesarmobile (JIRA)" <ji...@apache.org> on 2017/01/20 23:11:26 UTC

[jira] [Closed] (CB-12211) InAppBrowser - problem in iOS 10 when try to open an url in external browser with window.open(url, "_system")

     [ https://issues.apache.org/jira/browse/CB-12211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jcesarmobile closed CB-12211.
-----------------------------
    Resolution: Not A Problem
      Assignee: jcesarmobile

Sorry for not answering before.

This is not an error, cordova-ios apps need gap: protocol on the CSP to make plugins work.

See the CSP that the default Cordova app includes, with the comment where it explains some of them, and the most important, the  gap:

On iOS 10 the CSP became stricter and blocks the plugins from working if you don't include the gap:

{code}
<!--
        Customize this policy to fit your own app's needs. For more guidance, see:
            https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
        Some notes:
            * gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
            * https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
            * Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
                * Enable inline JS: add 'unsafe-inline' to default-src
        -->
        <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
{code}

> InAppBrowser - problem in iOS 10 when try to open an url in external browser with window.open(url, "_system")
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: CB-12211
>                 URL: https://issues.apache.org/jira/browse/CB-12211
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin InAppBrowser
>         Environment: iOS 10
>            Reporter: Marco
>            Assignee: jcesarmobile
>
> Consider the following scenario:
> 1. My Cordova App have a filter based on InAppBrowser like this:
> function openurlinexternalbrowser() {
>             $(document).on('click', 'a[target="_system"],a[target="_blank"]', function (e) {
>                 e.preventDefault();
>                 var url = this.href;
>                 window.open(url, "_system");
>             });
> }
> 2. This filter permits to open the url in anchor tag ( <a>...</a> ) in external browser. For example: 
>       <a class="link_no_decoration" href="http://www.google.com/" target="_blank">Test Google</div></a>
> 3. So, my App uses InAppBrowser plugin and calls "window.open" with "_system" as a target.
> --- WRONG BEHAVIOUR --- 
> What's happen when I try to open an url?
> - in iOS 9, all works fine, url it's open in external browser after click on a link;
> - in iOS 10 nothing happen, but if you click on a link, and then click twice on the home button (like when you enter in multitasking mode), the browser appears and it opens the url.
> It's possible to fix this problem?
> Thank you



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org