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.
Added support for hiding the web view container. This maintains the browser
session without closing it. The browser window can be repeatedly hidden and
shown.
** This has only been tested on android and ios **
amazon/android:
An additional `hide` action was added to `InAppBrowser#execute`. It is
identical to `show`, except that it calls `dialog.hide()` instead.
blackberry10:
no changes
firefoxos:
Added a `hide` method that is identical to `show`, indicating it is not
supported.
ios:
Added a `hide` method that is identical to `show`, except that it uses
`dismissViewControllerAnimated`. It checks the value of
`_previousStatusBarStyle`. If it is `-1`, the method returns with no
action performed. If it is not, it is set to `-1.`
ubuntu:
Added a `hide` method that sets `CordovaWrapper.global.inappbrowser.visible` to
`false`.
windows:
Added a `hide` method that sets `browserWrap.style.display` to `none`.
wp:
Added a `hide` method that is identical to `show`, except that it sets
`browser.Visibility` to `Visibility.Collapsed` and sets `AppBar.IsVisible` to
`false`.
The autoresizing masks are applied conditonally based on the
browserOptions.toolbarposition flag to ensure that the toolbar is in
its correct place. Also added a utility function to query the
necessary offset for the status bar: the function takes care of the iOS
version and orientation caused differences without hardcoding the value
as 20 pixels.
The position of the toolbar is now configurable, it can be specified on
the caller's side. The possible values are top and bottom and the key
for the setting is toolbarposition. Also extended the logging of the web
view's load errors, it now logs the error code too, not just the
localized description of the error that occured. Added the
browserOptions to the init method's parameters in order to make it
conveniently accessible from the ViewController.