2013-02-11 27 views
9

पर फोनगैप या क्लीवर (कॉर्डोवा) में रिमोट एचटीएमएल लोड हो रहा है मैं अपने मूल आईओएस 6 एप्लिकेशन में कॉर्डोवा 2.4 घटक क्लीवर और एक एम्बेडेड व्यू का उपयोग कर रहा हूं। अब तक मैंने प्रोजेक्ट स्ट्रक्चर बनाने में कामयाब रहा है, कॉर्डोवा पुस्तकालयों को लिंक किया है और हैलो वर्ल्ड ऐप स्थापित किया है जो "डिवाइस रेडी" फीडबैक प्रदान करने वाले काम करता है।आईओएस

यह सब बढ़िया है लेकिन यह ऐप के अंदर वितरित www रिपॉजिटरी से सभी एचटीएमएल लोड करता है (सभी जेएस पुस्तकालयों सहित)।

क्या मैं सच में यो करना चाहते हैं यह है:

1 - क्लीवर घटक पॉपअप मेरे एप्लिकेशन में (जो एक एम्बेडेड UIWebView से और कुछ नहीं है)। आसान - किया।

2 - मेरे रिमोट सर्वर पर एक सर्वलेट को इंगित करने वाले यूआरएल से कुछ एचटीएमएल सामग्री लोड करें। मेरे पास कई सर्लेट हैं और उनमें से प्रत्येक को अलग से लोड करने में सक्षम होना चाहिए।

3 सामग्री कॉर्डोबा के माध्यम से मेरी देशी अनुप्रयोग के साथ चरण 2 सहभागिता में उत्पन्न किया है जावास्क्रिप्ट libs कॉर्डोबा-2.4.0.js - (मैं इन कैसे लोड अगर वे डिवाइस लेकिन एचटीएमएल करने के लिए स्थानीय दूरस्थ स्थान से लोड किया गया था रहे हैं)।

मैं इसे कैसे सेट अप कर सकता हूं?

पीएस

मैं जावास्क्रिप्ट डेवलपर :)

उत्तर

10

यहां जवाब है। क्या एक खुशी ...

excellent article on dynamic page loading in PhoneGap and Cordova

को सटीकता से मैं क्या जरूरत है। प्रोजेक्ट का दूसरा भाग देशी वेब सेवाओं को लोड करने के लिए देशी कोड को सक्षम करना था - मैंने क्लीवर वेब व्यू पर stringByEvaluatingJavaScriptFromString नामक इसे पूरा किया।

[webview stringByEvaluatingJavaScriptFromString:@"app.loadExternal('www.usatoday.com')]; कोड है कि एक आकर्षण :)

वियोला की तरह काम करता है - मैं एक क्लीवर जावास्क्रिप्ट एप्लिकेशन और देशी कंटेनर के बीच पूरा दोतरफा संचार के साथ बाहरी एचटीएमएल सामग्री लोड करने में सक्षम देखने की है।

8

अपने index.html फ़ाइल के अंदर से Obj सी की अधिक कर रहा हूँ (बिंदु 2 के लिए) कुछ इस तरह करते हैं

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> 
<meta charset="utf-8"> 
<script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script> 
<script type="text/javascript"> 
    function onBodyLoad(){  
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 
    function onDeviceReady(){ 
     window.location.href = <your_remote_url> 
    } 
} 
</script> 

बिंदु 3 के लिए, आपकी रिमोट कंटेंट को cordova.js आयात करना चाहिए और इंटरैक्शन (मूल/वेब) काम करेगा जैसे कि यह स्थानीय सामग्री थी।

+0

धन्यवाद elio.d लेकिन बिल्कुल मैं नहीं देख रहा था। मेरे पास बहुत से सर्वलेट सेवाएं हैं जिन्हें मुझे गतिशील रूप से आमंत्रित करने और उनकी सामग्री को दृश्य में लोड करने की आवश्यकता है - इसलिए इस तरह की हार्डकोडिंग काम नहीं करेगी। मैं सर्वर पक्ष पर cordova.js को होस्ट नहीं करना चाहता हूं। मुझे जवाब और समाधान मिला। यह होस्टिंग पेज के साथ अजाक्स के माध्यम से गतिशील सामग्री लोडिंग में है और cordova.js स्थानीय रह रहे हैं लेकिन सामग्री div को सर्वर से मांग पर लोड किया जा रहा है ... बहुत अच्छा काम करता है। – Moonwalker

+1

कुछ कारणों से यह नई विंडो में खुलता है न कि मूल एप्लिकेशन विंडो पर कोई विचार? –