Получите доступ к датчикам / адресной книге смартфона из веб-приложения СЕГОДНЯ? - PullRequest
2 голосов
/ 22 мая 2011

Я хочу предоставить веб-приложениям, работающим на сторонних серверах, доступ к датчикам смартфона и данным адресной книги. W3C работает над спецификацией для этого, которая называется API устройства. Тем не менее, он еще не закончен, и, вероятно, потребуется немало времени, прежде чем поставщики браузеров предоставят рабочие реализации.

Но мне нужен этот функционал СЕЙЧАС (для подтверждения концепции). Меня не волнует мобильность, Android будет достаточно. Требование пользователя сначала установить специальное программное обеспечение также будет в порядке.

На ум приходят два решения:

  • Взломайте API в браузере самостоятельно. Может быть, я мог бы взять Phonegap и легко написать обертку для браузера с ним? То есть, создать браузер с Phonegap, который предоставляет API-интерфейсы Phonegap JS для произвольных сайтов (пока не заботятся о безопасности)?
  • Напишите сервер и запустите его на смартфоне localhost. Этот сервер будет предоставлять доступ к ресурсам через HTTPS и OAUTH2 (например). Веб-приложения могут затем ссылаться на этот сервер localhost в своем коде (HACK HACK. Существуют ли механизмы безопасности, которые не позволяют произвольному сайту получить доступ к серверу, работающему на localhost?).

Предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 22 мая 2011

Использование WebView:

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

Этот класс является основой, на которой вы можете запустить свой собственный веб-браузер

WebView имеет несколько настроекточки, где вы можете добавить свое собственное поведение.Это:

Добавление интерфейсов JavaScript в Java с помощью метода addJavascriptInterface (Object, String).Это позволяет вам связывать объекты Java в WebView, чтобы ими можно было управлять с веб-страниц JavaScript.

Вам потребуется создать приложение, которое будет выполнять функции браузера (путем реализации пользовательского WebView).,Затем в этом приложении создайте объект Java для веб-представления, который будет извлекать информацию о датчике.В выходных данных сервера напишите javascript, который проверяет и обращается к этому объекту.

1 голос
/ 22 мая 2011

Для Android, я полагаю, вы можете предоставить пользовательскую локальную функциональность для javascript, обернув веб-просмотр в собственном облегченном приложении «браузер» или создав плагин для поставляемого браузера. Как указано в этом вопросе Как разработать плагины для нативного браузера Android , в примерах sdk есть пример.

Но я бы, например, был бы очень расстроен, если бы вы разрешили веб-сайту доступ к контактам моего устройства и, вероятно, отказались бы установить ваше приложение на моем устройстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...