incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shazron Abdullah (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-362) [ios] target="_blank" links should open in browser (ignoring externalhosts)
Date Fri, 30 Mar 2012 00:33:27 GMT

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

Shazron Abdullah commented on CB-362:
-------------------------------------

see also Andrew's blog post regarding current behaviour in Cordova: https://build.phonegap.com/blog/access-tags

To be clear, iOS allows everything to happen within a UIWebView, load external as well as
file urls that are in your app sandbox. On a iOS device, iOS restricts your app from loading
a file url in Mobile Safari.

Effectively - a file url anchor tag with target doesn't work anyway according to iOS' restrictions
so this is a documentation issue.

A http url with or without target is within what we can control. With target, that's easy,
we punt it to Mobile Safari. Without target, the current behaviour is to load it into UIWebView,
replacing the existing page that the anchor tag is in - my fix proposal is we don't do this.


If an external webpage takes over the UIWebView, how would you get "back" to your app? Are
there scenarios where people do this or this is desired? Note that my proposal will not affect
loading http urls in iFrames.

>From my tests, any anchor target value will trigger a new request, with its UIWebViewNavigationType
as UIWebViewNavigationTypeOther which Apple defines as "Some other action occurred." in their
docs for UIWebView (not really helpful), thus there is no way to differentiate between "_self"
or "_blank". We are treating any target value as "_blank" effectively.

Android and Blackberry behaviour is listed in the link I put at the start of this comment.
Looking at that table in the link, this proposed fix (the only fix I can think of to solve
this issue) is to correct the "unlisted" behaviour of iOS. But, in doing so, it will alter
the expectations of the "whitelisted" column for iOS.

*With the proposed fix:*
Regular link -- changes from "webview" to "webview (file urls only)"
target="_blank" -- stays the same as "browser" (file urls can't be opened in the browser anyway
- iOS restriction)

The problem with my proposed fix is it will change expected behaviour across all the platforms
(ie iOS does it this way, but Android does it that way), thus it is high risk and against
the project's philosophy, which suggests to me that this issue is a "won't fix".


                
> [ios] target="_blank" links should open in browser (ignoring externalhosts)
> ---------------------------------------------------------------------------
>
>                 Key: CB-362
>                 URL: https://issues.apache.org/jira/browse/CB-362
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: iOS
>    Affects Versions: 1.5.0
>            Reporter: Andrew Lunny
>            Assignee: Shazron Abdullah
>              Labels: externalhosts, whitelist
>             Fix For: 1.7.0
>
>
> A link such as this:
> {noformat}<a href="http://google.com" target="_blank">Google</a>{noformat}
> should open by default in the device's web browser, without being explicitly allowed
in the plist (externalhosts).
> This is the current (and, imo, expected) behaviour on Android.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message