【问题标题】:HTML5 and javascript in xcodexcode 中的 HTML5 和 javascript
【发布时间】:2014-05-29 22:01:36
【问题描述】:
我对 xcode 很陌生,因为我主要使用 JS 和 HTML5。我决定创建一个简单的 webview 应用程序,让我能够使用 JS 和 HTML5(我会尽快将它放到 Github 上)
现在我的问题是关于访问我无法在 Safari 或 Chrome 中使用的某些 iPhone 功能(我创建它的原因)。
所以问题是:这可能吗?例如,我无法在 iOS 浏览器中访问相机(我的意思是全屏背景),但我可以在 webview 中使用它吗?
【问题讨论】:
标签:
javascript
ios
xcode
html
uiwebview
【解决方案1】:
您需要在 UIWebView 和包含应用程序之间进行通信的任何方法。有 库可以做到这一点,有些更好有些更少。万一你不想要它们……那么概述一下实现这一点的技术:
- 应用程序 与 webView 对话 - 使用
[webView stringByEvaluatingJavaScript:...]
- Webview 与应用程序对话 - 使用 url 指令。这本质上是
window.location = ... 与自定义假网址,然后在委托方法webView:shouldStartLoadWithRequest:navigationType: 中解析NSURL,当然返回NO 以防止实际导航到您的假网址。
如果你发现你丢失了连续的 URL 请求,你可以编写一个 JS 函数来获取这些 URL,将它们全部放入一个数组中,一个接一个地弹出并将它们以 setTimeout(..., 0) 的形式发送到浏览器。
【解决方案2】:
你需要使用这样的东西 - Cordova 或 PhoneGap (两者是一样的)
“Apache Cordova 是一组设备 API,允许移动应用程序开发人员从 JavaScript 访问本机设备功能,例如相机或加速度计。结合 jQuery Mobile 或 Dojo Mobile 或 Sencha Touch 等 UI 框架,这允许仅使用 HTML、CSS 和 JavaScript 开发的智能手机应用程序。”
这里是所有设备功能的描述 cordova 或 phonegap 允许您使用 - Plugin API's