Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling window.location.href in PhoneGap triggers web browser

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

like image 230
Claus Avatar asked May 05 '11 12:05

Claus


2 Answers

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

Source: https://build.phonegap.com/docs/config-xml

like image 56
Stin Avatar answered Oct 12 '22 15:10

Stin


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 ];
    }
}
like image 33
John D Avatar answered Oct 12 '22 15:10

John D