Calling window.location.href in PhoneGap triggers web browser
-
29-10-2019 - |
Question
Hello I'm trying to develop an application for iPad using PhoneGap. I would like to dinamically load inside the index.html page the main page of an external website. Unfortunately using
window.location.href = "http://mywebsite.com/cgi-bin/index.py"
triggers the opening of a Safari window instead of using the PhoneGap container.
Any suggestions?
Thanks a lot
Claus
Solution
Find the AppDelegate.m file in the 'Classes' part of the project, and find webView:shouldStartLoadWithRequest:navigationType Make the function look like this and try again!
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) {
[[UIApplication sharedApplication] openURL:url];
return NO;
}
else {
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
}
}
OTHER TIPS
There's a simpler option: modify config.xml
Open all links in WebView
stay-in-webview with values true or false
example:
<preference name="stay-in-webview" value="true" />
if set to true, all links (even with target set to blank) will open in the app's webview
only use this preference if you want pages from your server to take over your entire app
default is false