【问题标题】:Access smartphone sensors / address book from web app TODAY?今天从网络应用程序访问智能手机传感器/地址簿?
【发布时间】:2011-08-30 16:13:27
【问题描述】:

我想让在国外服务器上运行的 Web 应用程序访问智能手机传感器和地址簿数据。 W3C 正在为此制定一个规范,称为设备 API。但是,它还没有完成,浏览器供应商提供可行的实现可能需要相当长的时间。

但我现在需要这个功能(用于概念证明)。我不在乎便携性,Android就足够了。要求用户先安装特殊软件也可以。

我想到了两个解决方案:

  • 自己将 API 破解到浏览器中。也许我可以使用 Phonegap 并轻松地用它编写浏览器包装器?也就是说,使用 Phonegap 构建一个浏览器,将 Phonegap JS API 暴露给任意网站(暂时不关心安全性)?
  • 编写一个服务器并在智能手机本地主机上运行它。该服务器将通过 HTTPS 和 OAUTH2(例如)提供对资源的访问。然后,Web 应用程序可以在其代码中引用这个 localhost 服务器(HACK HACK .. 是否有安全机制可以防止任意站点访问在 localhost 上运行的服务器?)。

欢迎提出建议。

【问题讨论】:

    标签: iphone android mobile cordova


    【解决方案1】:

    使用 Web 视图:

    http://developer.android.com/reference/android/webkit/WebView.html

    这个类是你可以滚动你自己的网络浏览器的基础

    WebView 有几个自定义点,您可以在其中添加自己的行为。它们是:

    添加 JavaScript-to-Java 接口 与 addJavascriptInterface(对象,字符串) 方法。这使您可以绑定 Java 对象到 WebView 中,这样他们就可以 从网页控制 JavaScript。

    您需要创建一个充当浏览器的应用程序(通过实现自定义 WebView)。然后在该应用程序中,为将获取传感器信息的 Web 视图创建一个 java 对象。在服务器输出中,编写测试和访问该对象的 javascript。

    【讨论】:

      【解决方案2】:

      对于 android,我相信您可以通过在自己的轻量级“浏览器”应用程序中包装 webview 或为提供的浏览器构建插件来向 javascript 公开自定义本地功能。正如在这个问题How to develop plugins for the native Android browser 中指出的那样,sdk 示例中有一个示例。

      但是,如果您启用网站访问我设备的联系人,我会非常沮丧,并且可能会拒绝在我的设备上安装您的应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        相关资源
        最近更新 更多