9

我在本机 iOS 6 应用程序中使用了 Cordova 2.4 组件 Cleaver 和嵌入式视图。到目前为止,我已经成功地创建了项目结构,链接了 Cordova 库并设置了 Hello World 应用程序,该应用程序可以提供“设备就绪”反馈。

这一切都很好,但它从分布在应用程序本身的 www 存储库加载所有 html(包括所有 js 库)。

我真正想要你做的是:

1 - 在我的应用程序中弹出切割器组件(只不过是嵌入式 uiwebview)。容易 - 完成。

2 - 从指向我的远程服务器上的 servlet 的 URL 加载一些 html 内容。我有几个 servlet,当然需要能够分别加载它们中的每一个。

3-让第2步中生成的内容通过cordova javascript libscordova-2.4.0.js与我的本机应用程序交互-(如果它们是设备本地的,但html是从远程位置加载的,我该如何加载它们)。

我该如何设置?

附言

我比 Javascript 开发者更喜欢 Obj-C :)

4

2 回答 2

10

Here is the answer. What a joy...

excellent article on dynamic page loading in PhoneGap and Cordova

Precisely what I needed. The second part of the project was to enable native code to force the loading of external web services - I accomplished this by called stringByEvaluatingJavaScriptFromString on the Cleaver web view .

[webview stringByEvaluatingJavaScriptFromString:@"app.loadExternal('www.usatoday.com')]; is the code that works like a charm:)

Viola - I have a Cleaver view capable of loading external html content with complete two-way communication between the javascript app and the native container.

于 2013-02-12T12:58:31.810 回答
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,并且交互(本机/网络)将像本地内容一样工作。

于 2013-02-11T19:18:35.023 回答