2013-02-11 17 views
9

Yerel iOS 6 uygulamasında bir Cordova 2.4 bileşen Cleaver ve yerleşik bir görünüm kullanıyorum. Şimdiye kadar proje yapısını oluşturmayı, Cordova kütüphanelerini bağlamayı ve “Device Ready” geri bildirimi sağlamaya çalışan Hello World uygulamasını kurmayı başardım.iOS'ta PhoneGap veya Cleaver'da (Cordova) uzaktaki html yükleme

Bu her şey harika ancak uygulamanın içindeki dağıtılmış tüm www deposundan (tüm js kitaplıkları dahil) tüm html yükler.

Ne gerçekten yo yapmak istiyorum şudur:

1 - Uygulamamda (gömülü UIWebView daha başka bir şey olan) balta bileşenini pop-up. Kolay yapılır. 2 - bazı html içeriğini uzak sunucumdaki bir sunucuya işaret eden bir URL'den yükleyin. Birkaç servletim var ve bunların her birini ayrı ayrı kurtarabilmem gerekiyor.

3- adım 2'de oluşturulan içeriğin yerel uygulamam ile cordova javascript libs cordova-2.4.0.js aracılığıyla etkileşime girmesini sağlayın - (bunlar yerel aygıt içindeyken bunları nasıl yüklerim ama html uzak konumdan yüklenir)).

Bunu nasıl kurabilirim?

P.S. Ben JavaScript geliştiricisi :) senin index.html dosyası içinde

cevap

10

İşte cevap. Ne bir sevinç ...

excellent article on dynamic page loading in PhoneGap and Cordova

Tam ihtiyacım olan şey. Projenin ikinci kısmı, harici web hizmetlerinin yüklenmesini zorlamak için yerel kodun etkinleştirilmesiydi - bunu Cleaver web görünümünde stringByEvaluatingJavaScriptFromString olarak adlandırdım.

[webview stringByEvaluatingJavaScriptFromString:@"app.loadExternal('www.usatoday.com')];

bir cazibe :)

Viola gibi çalışır kod - Bir Cleaver JavaScript uygulama ve yerli kap arasında tam iki yönlü iletişim ile dış HTML yükleme kapasitesine sahip bir görünüm vardır.

8

daha Obj C fazlasıyım

(nokta 2 için) böyle bir şey yapmak

<!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. nokta için uzak içeriğiniz cordova.js dosyasını içe aktarmalı ve etkileşim (yerel/web) yerel içerikmiş gibi çalışacaktır.

+0

Teşekkürler elio.d ama tam olarak aramıyordum. Dinamik olarak çağırmam ve içeriğini içeriğe yüklemem gereken tonlarca servlet hizmetim var - bu şekilde kodlama çalışması işe yaramayacak. Ayrıca cordova.js'yi sunucu tarafında barındırmak istemiyorum. Cevabı ve çözümü buldum. Tüm Ajax aracılığıyla hosting sayfası ve cordova.js ile yerel kalıyorum ama içerik div sunucularından talep yüklenen ile dinamik içerik yükleme içinde ... oldukça güzel çalışıyor. – Moonwalker

+1

Bazı nedenlerden ötürü, orijinal uygulama penceresinde değil, yeni bir pencerede açılır mı? –

İlgili konular