在iOS上的PhoneGap或Cleaver(Cordova)中加载远程html

时间:2013-02-11 18:06:29

标签: ios cordova uiwebview

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

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

我真正想要做的是:

1 - 在我的应用中弹出切割器组件(除了嵌入式uiwebview之外的其他内容)。轻松完成。

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

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

我该如何设置?

P.S。

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

2 个答案:

答案 0 :(得分:10)

这是答案。多么快乐......

excellent article on dynamic page loading in PhoneGap and Cordova

正是我需要的。该项目的第二部分是启用本机代码来强制加载外部Web服务 - 我在Cleaver Web视图上通过调用stringByEvaluatingJavaScriptFromString来完成此任务。

[webview stringByEvaluatingJavaScriptFromString:@"app.loadExternal('www.usatoday.com')];是一个像魅力一样的代码:)

Viola - 我有一个Cleaver视图,能够加载外部html内容,并在javascript应用程序和本机容器之间进行完整的双向通信。

答案 1 :(得分: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,并且交互(本机/网络)将像本地内容一样工作。