2013-04-13 8 views

Odpowiedz

13

Jeśli zmienisz linki, aby użyć nowej składni InAppBrowser, możesz łatwo otworzyć swoje adresy URL w przeglądarce internetowej systemu, w aplikacji InAppBrowser lub w rzeczywistym widoku Twojej aplikacji.

Kod ten powinien otworzyć adresu URL w przeglądarce internetowej System (Safari na iOS):

<a href="#" onclick="var ref = window.open('http://google.com', '_system');"> 

Zmiana '_system' do '_blank' otworzy URL w InAppBrowser.

Zmiana '_system' na '_self' spowoduje otwarcie adresu URL w widoku przeglądarki Twojej aplikacji (jeśli domena znajduje się na białej liście) lub InAppBrowser (jeśli domena nie znajduje się na białej liście).

Próbka Streszczenie: https://gist.github.com/wicketyjarjar/7043336

Uwaga: Cordova/PhoneGap 3.0+ wymaga wtyczki InAppBrowser być zainstalowany zanim to będzie działać.

Aby zainstalować wtyczkę InAppBrowser (jeśli to konieczne) ...

Korzystanie Cordova: cordova plugin add org.apache.cordova.inappbrowser

Korzystanie PhoneGap: phonegap local plugin add org.apache.cordova.inappbrowser

+0

próbuję tego też, ale nie działa w taki sam związek otwarty AppBrowser –

+0

To działa dla mnie, oto przykład: https://gist.github.com/anonymous/5394042 – wicketyjarjar

+0

zły link. idzie na stronę 404 ... –

0

Moje rozwiązanie jest jak poniżej: najpierw zdefiniować funkcję otwórz bezpieczny adres:

LaunchNewWindow: function (url) {  
    if (window.location.toStringing().match(/file/i) && navigator.userAgent.match(/iPhone|iPad|iPod/i)) { 
    window.open(url+"_xex_", "_blank");} 
    else{ 
    window.open(url, "_blank"); 
    } 
} 

następnie hav e zmienić kod w CordovaLic \ Classses \ CDViewController.m (CordovalLib 3.0.0) do obsługi przestrzenną link: dodałem go w line685:

else { 

// start stoneskin's change: force open external url in safari        
           if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) { 
    NSString *myurlstr = [url absoluteString]; 
    if ([myurlstr rangeOfString:@"_xex_"].location != NSNotFound){ 
     myurlstr = [myurlstr stringByReplacingOccurrencesOfString:@"_xex_" withString:@""]; 
     NSURL *myurl = [NSURL URLWithString:myurlstr]; 
     [[UIApplication sharedApplication] openURL:myurl]; 
     return NO; 
    } 

} 
//end start stoneskin's change 
if ([self.whitelist schemeIsAllowed:[url scheme]]) { 
    return [self.whitelist URLIsAllowed:url]; 
} else { 
    if ([[UIApplication sharedApplication] canOpenURL:url]) { 
     [[UIApplication sharedApplication] openURL:url]; 
} else { // handle any custom schemes to plugins 
     [[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPluginHandleOpenURLNotification object:url]]; 
} 
} 

return NO; 
}