2013-02-11 45 views
9

我在本機iOS 6應用程序中使用Cordova 2.4組件Cleaver和嵌入式視圖。到目前爲止,我已經設法創建了項目結構,鏈接Cordova庫並設置了提供「設備就緒」反饋的Hello World應用程序。在PhoneGap或Cleaver(Cordova)中加載遠程HTML在iOS上

這是非常棒的,但它會加載應用程序本身(包括所有js庫)內部分發的www存儲庫中的所有html。

我真正想要做的喲是這樣的:

1 - 彈出切斷器組件(不是別的,只是嵌入的UIWebView)在我的應用程序。簡單 - 完成。

2-從指向遠程服務器上的servlet的URL加載一些html內容。我有幾個servlet,並且需要能夠分別加載它們中的每一個。

3-將步驟2中生成的內容通過cordova javascript libs與我的本地應用程序進行交互cordova-2.4.0.js - (如何加載這些如果它們是本地設備但html是從遠程位置加載的)。

我該如何設置?

P.S.

我更多的OBJ-C比JavaScript開發:)

回答

10

這是答案。什麼是快樂?

excellent article on dynamic page loading in PhoneGap and Cordova

正是我需要的。該項目的第二部分是啓用本地代碼來強制加載外部Web服務 - 我在Cleaver Web視圖中通過稱爲stringByEvaluatingJavaScriptFromString來完成此操作。

[webview stringByEvaluatingJavaScriptFromString:@"app.loadExternal('www.usatoday.com')];是,就像一個魅力:)

中提琴的代碼 - 我有一個克利弗能夠查看加載外部HTML內容的JavaScript應用程序和本地容器之間完成雙向通信的。

8

內,您的index.html文件做這樣的事情(爲點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,並且交互(native/web)將像本地內容一樣工作。

+0

謝謝elio.d,但不完全是我正在尋找。我有大量的servlet服務需要動態調用並將其內容加載到視圖中,因此像這樣的硬編碼將無法工作。我也不想在服務器端託管cordova.js。我確實找到了答案和解決方案。它通過Ajax加載動態內容,託管頁面和cordova.js保持在本地,但內容div從服務器上按需加載......效果相當不錯。 – Moonwalker 2013-02-12 12:52:51

+1

由於某些原因,它在新窗口中打開,而不是在原始應用程序窗口上有任何想法? – 2015-11-11 11:58:31

相關問題