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