【发布时间】:2011-09-29 19:20:40
【问题描述】:
Apple 尚未批准 Google Voice 作为应用程序,因此 Google 创建了一个网络“应用程序”。所以他们以某种方式通过浏览器访问麦克风。浏览器无法访问麦克风,所以我想知道他们(以及我)是如何做到的。
我能想到的只有 PhoneGap 或 Titanium 之类的东西。
【问题讨论】:
标签: ipad google-voice
Apple 尚未批准 Google Voice 作为应用程序,因此 Google 创建了一个网络“应用程序”。所以他们以某种方式通过浏览器访问麦克风。浏览器无法访问麦克风,所以我想知道他们(以及我)是如何做到的。
我能想到的只有 PhoneGap 或 Titanium 之类的东西。
【问题讨论】:
标签: ipad google-voice
无法从运行在 iOS 上的 Safari 中的网络应用访问麦克风或摄像头。一旦 W3C 最终确定 HTML5 可能在几年后就有可能实现,但还有很长的路要走。我相信 Google Voice 的服务器实际上会呼叫您的手机,然后音频通过您手机的语音连接运行。
如果您愿意让自己成为一个最小的原生应用程序,那么有一个解决方案可以让您将几乎所有事情都作为一个网络应用程序来完成,只将原生代码用于与音频相关的内容:
将您的应用程序创建为 Web 应用程序。设计和构建所有内容,使其在 iPad 上的 Safari 中看起来很棒。
创建一个新的本机应用程序,它将充当您网站的外壳。它可以只是一个非常基本的 Objective-C 应用程序,其中包含一个 Web 视图。
当您的网络应用需要打开录音界面时,使其请求一个 url(通过 javascript 或通过用户单击链接),如下所示:
startaudio://whatever-variables-you-need-to-pass
在您的 Objective-C 代码中实现 UIWebView 委托函数 webView:shouldLoadRequest:。检查 Web 视图尝试加载的每个 URI,并拦截您的自定义“startaudio://”url。此时,您的应用将在本机 Objective-C 中显示音频界面,可能位于网站视图之上。
在 Objective-C 中(可能)将录制的音频数据上传到您的服务器,然后使用 [webView executeJavascript: ] 告诉浏览器音频记录器已被关闭。
希望有帮助!
【讨论】: