2013-04-13 10 views
9

मैं इस तरह बाहरी यूआरएल को खोलने का प्रयास,फोनगैप 2.5.0, आईपैड/आईफोन के लिए बाहरी यूआरएल कैसे खोलें?

<a href="http://google.com" target="_system" > 

और भी _blank के साथ प्रयास करें, लेकिन यह एक ही एप्लिकेशन स्क्रीन सफारी ब्राउज़र में खुला नहीं में खुला है,

कैसे हल करने के लिए ..?

उत्तर

13

यदि आप नए InAppBrowser वाक्यविन्यास का उपयोग करने के लिए अपने लिंक बदलते हैं, तो अपने यूआरएल को या तो सिस्टम वेब ब्राउज़र, InAppBrowser या अपने ऐप के वास्तविक वेबव्यू में खोलना आसान है।

इस कोड प्रणाली वेब ब्राउज़र (iOS पर सफारी) में अपने URL खोलने चाहिए:

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

'_system''_blank' को बदलने InAppBrowser में URL खुल जाएगा।

'_system''_self' को बदलने से आपके एप्लिकेशन की वेबव्यू में URL खुल जाएगा (यदि डोमेन श्वेत सूची में है) या InAppBrowser (यदि डोमेन सूचीबद्ध नहीं है)।

नमूना सार: https://gist.github.com/wicketyjarjar/7043336

नोट: कॉर्डोबा/PhoneGap 3.0+ InAppBrowser प्लगइन इंस्टॉल होना आवश्यक है इससे पहले कि यह काम करेगा।

InAppBrowser प्लगइन स्थापित करने के लिए (यदि आवश्यक हो) ...

Cordova का उपयोग करना: cordova plugin add org.apache.cordova.inappbrowser

PhoneGap का उपयोग करना: phonegap local plugin add org.apache.cordova.inappbrowser

+0

मैं इस एक भी करने की कोशिश, लेकिन एक ही में लिंक काम नहीं कर खुला AppBrowser –

+0

यह मेरे लिए काम कर रहा है, यहां एक नमूना है: https://gist.github.com/anonymous/5394042 – wicketyjarjar

+0

खराब लिंक। 404 पेज पर जाता है ... –

0

मेरे समाधान नीचे की तरह है: पहले मैं एक समारोह के लिए परिभाषित खुला सफारी यूआरएल:

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"); 
    } 
} 

तो आप एचएवी ई अपने spacial यूआरएल को संभालने के लिए CordovaLic \ Classses \ CDViewController.m (CordovalLib 3.0.0) में कोड बदलने के लिए: मैं इसे 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; 
} 
संबंधित मुद्दे