PhoneGap: Opening external URL's in Safari

后端 未结 12 869
耶瑟儿~
耶瑟儿~ 2020-11-30 03:04

I\'ve just upgraded to PhoneGap 1.6.1 and I can no longer get external URL\'s to open in Safari.

Prior to this version I had patched AppDelegate.m as follows:

<
12条回答
  •  渐次进展
    2020-11-30 03:51

    The best way to open links in a new URL is actually with window.open. Just set the target as "_system":

    window.open("http://stackoverflow.com", "_system");
    

    Before I found this in the docs, I actually wrote a plugin to do the same. I'm going to leave this answer here, because this would give you much more granular control over handling of links.

    With PhoneGap 2.3+, I was unable to get URLs to open in Mobile Safari in any way. Using _blank didn't work, and I tried window.open(url, '_blank'), but this now opens the URL using the InAppBrowser plugin (which pretty much sucks). I thought it was interesting that that one used a plugin though, so I decided to write a plugin to open URLs using the standard method of opening URLs in iOS apps. You can see/grab the code on this gist here: https://gist.github.com/typeoneerror/5097118.

    In my example, I wired up links that have a class called "_blank" with jQuery and opened those URLs with the plugin call:

    // execute the plugin called OpenUrl, signature:
    // exec(successCallback, errorCallback, pluginName, pluginMethod, params)
    cordova.exec(success, error, "OpenUrl", "openUrl", [url]);
    

提交回复
热议问题