2012-04-23 15 views
5

पर कॉर्डोवा 1.6 के साथ बाहरी स्टार्टपेज सेट करना स्थानीय के बजाय बाह्य index.html (शामिल cordova.js के साथ) लोड करना संभव है?आईओएस

self.viewController.wwwFolderName = @"www"; 
self.viewController.startPage = @"index.html"; 

मैं एक बाहरी यूआरएल लेकिन भाग्य के बिना ... किसी को भी इस के लिए एक समाधान पता संदर्भित करने के लिए करने की कोशिश की:

मैं AppDelegate.m में इस कोड को मिला?

पेज।

एंड्रॉयड साथ

यह आसान है:

super.loadUrl("http://192.168.1.135:3000/"); 

उत्तर

4

मैं अपने प्रोजेक्ट (AppDelegate.m) के लिए यह किया है।

यह अच्छी तरह से काम कर रहा है। मेरी बाहरी साइट स्थानीय आईआईएस पर है और इसमें cordova.js के साथ-साथ कुछ प्लगइन्स भी हैं। अब सिर्फ यह देखना है कि क्या ऐप्पल को ऐप को स्वीकृति मिली है!

+0

मैं भी कोशिश कर रहा हूं, मेरे ऐप की शुरुआत में बाहरी यूआरएल रखने के लिए। मुझे यकीन नहीं था कि उदाहरण के लिए पुश सूचनाओं के लिए मैं प्लगइन कैसे लोड करूंगा। तो मुझे उन्हें यूआरएल में भी बाहरी रूप से लोड किया जाना चाहिए? –

1

सबसे आसान तरीका मैं यह है था, एक index.html फ़ाइल में स्क्रिप्ट ब्लॉक निम्नलिखित और अन्य कोड यदि आवश्यक नहीं हटाने में शामिल हैं:

<script type="text/javascript"> 
    window.location.href="http://192.168.1.135:3000/"; 
</script> 

और शामिल ExternalHosts में होस्ट PhoneGap.plist फ़ाइल में मानचित्र, OpenAllWhitelistURLsInWebView को YES पर सेट करें

+0

धन्यवाद, यह काम कर रहा है! लेकिन यह एंड्रॉइड पर ऐसा नहीं किया गया है। क्या कोई बेहतर तरीका है? – marcus3006

+0

हालांकि मुझे सटीक कारण पता नहीं है लेकिन फोनगैप आवश्यक कंटेनर बनाने के लिए मूल नियंत्रण का उपयोग करता है, जिसमें एंड्रॉइड उस मामले का समर्थन कर सकता है लेकिन आईओएस कंटेनर नहीं हो सकता है। यदि आप एंड्रॉइड के मामले में ध्यान से देखते हैं तो हम स्थानीय संसाधन को लोड करने के लिए पूर्ण यूआरएल देते हैं जबकि आईओएस में हम फ़ोल्डर का नाम और फ़ाइल नाम अलग से सेट करते हैं। – dhaval

+0

हाँ, आप सही हैं। मुझे यकीन नहीं है, लेकिन मुझे लगता है कि फोनगैप 1.4 के साथ यह संभव था। अब आपको एक फ़ोल्डर और फ़ाइल निर्दिष्ट करना होगा-.- – marcus3006

2

यदि आप include the PhoneGap source as a subproject (मैंने 1.7 का उपयोग किया और दिशाएं अभी भी काम करती हैं, तो अंत में मेरा नोट देखें), आप फोनगैप को startPage के रूप में बाहरी URL का समर्थन करने के लिए कोड की कुछ पंक्तियां जोड़ सकते हैं। एक जावास्क्रिप्ट ऊपर उल्लेख किया 'हैक'

पंक्ति 133 के आसपास

, आप जोड़ना

if([self.startPage hasPrefix:@"http"]) { 
    appURL = [NSURL URLWithString:self.startPage]; 
} 
else 

सही if (startFilePath == nil) { से पहले

डिफ़ॉल्ट रूप से, PhoneGap बिना बाहरी प्रारंभ पृष्ठ यूआरएल समर्थन करने के लिए प्रतीत नहीं होता है चाहता हूँ। इसके अलावा (और वह), मुझे कोई और रास्ता नहीं पता!

यदि आपके कोई और प्रश्न हैं तो मुझे बताएं।

नोट: जैसा कि मैंने उपर्युक्त उल्लेख किया है, वॉकथ्रू में एक कदम गुम है। मैंने लेखक को लेखक को जाने के लिए लेख पर टिप्पणी की, लेकिन इसे अभी तक स्वीकृत नहीं किया गया है।

एक कदम है कि मेरे लिए याद आ रही थी जोड़ने $ (CORDOVALIB) था/चरण बिल्ड तहत हैडर खोजें पथ के लिए वर्ग (भी यह रिकर्सिवली खोज करने के लिए अंकन): नीचे मेरी टिप्पणी है। इसके अलावा, महान लिखो!

self.viewController = [[[MainViewController alloc] init] autorelease]; 
self.viewController.useSplashScreen = YES; // YES; 
self.viewController.wwwFolderName = @""; // @"www"; 
self.viewController.startPage = @""; // @"index.html"; 
self.viewController.invokeString = invokeString; 
self.viewController.view.frame = viewBounds; 

// Load request with new root URL 
NSURL *urlOverwrite = [NSURL URLWithString:@"http://kyryll.com"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:urlOverwrite]; 

[self.viewController.webView loadRequest:request]; 

कहीं उल्लेख किया है, जिस साइट में पहुंचने की कोशिश कर रहे सजग किए जाने के लिए है के रूप में:

2

आईओएस के लिए यह होगा:

self.viewController.wwwFolderName = @""; // @"www" 
self.viewController.startPage = @"http://192.168.2.107:9000/"; 

नाम भ्रामक है क्योंकि प्रारंभ पृष्ठ भी यूआरएल है।

+0

मैंने आपके कोड को दोबारा सुधार दिया है लेकिन भविष्य में ऐसा करने की कोशिश करें और ठीक से करें। – simonmorley

+0

धन्यवाद, यह स्टैक ओवरफ्लो में मेरी पहली टिप्पणी थी :-) –

+0

मुझे यह पसंद है। यह स्वीकार किए गए उत्तर से अधिक संक्षिप्त है। – louielouie

0

wwwFolderName को खाली स्ट्रिंग में सेट करना मेरे लिए काम नहीं करता था लेकिन शून्य काम करता था।

self.viewController.wwwFolderName = nil; 
self.viewController.startPage = @"http://192.168.2.107:9000/"; 
0

सबसे आसान तरीका मैं यह है था, xxxViewController: CDVViewController < ...>

-(void) viewDidLoad{ 
    self.wwwFolderName = @"dist"; 
    self.startPage = @"test.html"; 
    [super viewDidLoad]; 
} 

हां, तो यह है कि सभी है।