[ 
https://issues.apache.org/jira/browse/CB-14234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16576940#comment-16576940
 ] 

ASF GitHub Bot commented on CB-14234:
-------------------------------------

dpolivy opened a new pull request #278: CB-14234: (ios) Don't call 
handleOpenURL for system URLs
URL: https://github.com/apache/cordova-plugin-inappbrowser/pull/278
 
 
   When calling `.open()` with a target of `_system`, the InAppBrowser on iOS 
is both launching the URL in the system browser AND also broadcasting to open 
the URL within the app (calling handleOpenURL). The latter behavior is 
problematic in many circumstances (e.g. when you want to explicitly open a link 
in a browser which is a universal link handled by the app).
   
   This commit attempts to address this by checking the return value from 
openURL -- if it does not open the URL successfully, then (and only then) the 
code falls back to broadcasting the event within the app to handleOpenURL.
   
   <!--
   Please make sure the checklist boxes are all checked before submitting the 
PR. The checklist
   is intended as a quick reference, for complete details please see our 
Contributor Guidelines:
   
   http://cordova.apache.org/contribute/contribute_guidelines.html
   
   Thanks!
   -->
   
   ### Platforms affected
   iOS
   
   ### What does this PR do?
   Fixes CB-14234; it checks the return value of the call to `openURL`, and 
only broadcasts the `handleOpenURL` event within the app if `openURL` fails to 
open the URL in the system.
   
   ### What testing has been done on this change?
   I've done manual testing on iOS
   
   ### Checklist
   - [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) 
in the JIRA database
   - [ x] Commit message follows the format: "CB-3232: (android) Fix bug with 
resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform 
affected.
   - [ ] Added automated test coverage as appropriate for this change.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> InAppBrowser iOS calls handleOpenURL in same app for _system URLs
> -----------------------------------------------------------------
>
>                 Key: CB-14234
>                 URL: https://issues.apache.org/jira/browse/CB-14234
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-plugin-inappbrowser
>    Affects Versions: 3.0.0
>            Reporter: Dan Polivy
>            Priority: Minor
>
> The change to fix CB-11178 has caused some undesirable behavior with 
> InAppBrowser on iOS. Now, whenever you try to open a URL in the system 
> browser, by calling `cordova.InAppBrowser.open(url, "_system")`, it opens the 
> system browser AND calls `handleOpenURL` _in your app_ with the same URL.
> In my case, my app is a URL handler for a corresponding web domain (app 
> links). I am trying to open a page on this web domain in the system browser 
> from within my app. If my app's handleOpenURL is called with a URL also on 
> the domain, then my handler thinks it is handling an app link and it causes 
> the app to navigate to another URL, which in this case is not desired or 
> expected.
> Prior to the fix for CB-11178, this worked perfectly. Is there any other way 
> to address the fix for CB-11178 without inheriting this incorrect and 
> undesirable behavior?
> [~jcesarmobile]: FYI as you committed the fix in question.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to