2013-04-09 2 views
0

Я хотел бы знать, могу ли я разработать приложение в BB OS (4 - 7) с аналогичными функциями для Android/iOs где;BBOS (pre BB10) Запуск приложения через намерения (как Android)

  • Я бы мог зарегистрировать приложение для прослушивания определенных URL-адресов.
  • Я могу запустить приложение по URL-адресу.
  • Я могу анализировать данные из URL-адреса и использовать их в приложении.

Например, в Android можно использовать Intent фильтры как этот

<intent-filter> 
    <action android:name="android.intent.action.VIEW"></action> 
     <category android:name="android.intent.category.DEFAULT"></category> 
     <category android:name="android.intent.category.BROWSABLE"></category> 
     <data android:scheme="http" 
      android:host="myapp.com" 
      android:pathPrefix="/launchapp/" /> 

</intent-filter> 

запустить приложение на laoding URL, такие как

я могу затем разобрать две цифры после launchapp/и использования их в приложении.

Любой, кто знаком с BB OS, знает, возможно ли это?

ответ

2

Я не знаю о задокументированных слушателях для перехвата открытых URL-адресов. Но есть механизм GlobalEvent. Почти каждый шаг, выполняемый на pre-BB10 OS, запускает одно или несколько глобальных событий. Некоторые из них документированы, а некоторые нет.

Там описаны GUID, перечисленные: http://www.blackberry.com/developers/docs/7.0.0api/index-files/index-7.html (ищите G буквы, и прокрутите вниз для GUID_xxxx констант).

Чтобы уловить недокументированные идентификаторы GUID, implement фоновое приложение, которое использует GlobalEventListener. Затем откройте страницу в браузере и запишите все глобальные контуры событий и объекты, которые приходят вместе с указателями на вызов eventOccurred. И вы можете узнать, какие глобальные события связаны с открытием url-события. Это поможет создать механизм перехвата URL. И эта часть должна быть родным приложением (написано на Java).

Возможно запустить приложение через URL-адрес, но это должно быть приложение WebWorks. Не родной. Проверьте эту ссылку: http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Launch-BlackBerry-WebWorks-app-via-URL-with-parameters/td-p/1674663

Когда ваше веб-приложение выполнило свою часть работы, оно может fire GlobalEvent, и ваше родное приложение будет ждать его, чтобы перехватить его и продолжить работу.

+1

спасибо за указатели :) –

+0

вы очень приветствуются :) – 2013-04-10 10:38:25

1

Есть несколько способов сделать это на BBOS в зависимости от того, что именно вы хотите.

  1. Создайте плагин для браузера, используя API net.rim.device.api.browser.plugin. Здесь вы создаете BrowserContentProvider и присоединяете его к браузеру BB для обработки определенного типа mime. Этот тип mime должен быть уникальным для вас, который не обрабатывается родным браузером (скажем x-vnd-whatever/myapplauncher). Когда браузер получит доступ к вашему URL-адресу, скажем http://myapp.com/launchapp/233, подайте файл с номером 233 и зарегистрированным типом mime. Браузер загрузит файл, посмотрит его тип mime, а затем передаст содержимое файла в ваш плагин для обработки. Ваш плагин будет читать идентификатор приложения - 233, а затем делать с ним все, что вы хотите. BlackBerry App World использует этот метод для allow developers to launch their app in app world from a url.

  2. Создать HttpFilter. Используя это, вы можете подключиться к данному домену через свой код. Здесь вы зарегистрируете свой фильтр для своего домена myapp.com и всякий раз, когда кто-то пытается получить доступ к любому myapp.com, браузер вызовет ваш фильтр для обработки запроса. Снова BlackBerry App World делает это для доступа к домену http://appworld.blackberry.com. [В образцах есть HttpFilterDemo]

  3. Используйте API StringPattern. Поддерживаются почти все исходные текстовые поля. Поэтому, если есть текстовое поле с текстом, которое соответствует определенному шаблону, оно будет подчеркнуто, и нажатие на него покажет ваши пользовательские действия в меню. [Существует StringPatternDemo в образцах, чтобы помочь вам]

  4. Если ваше приложение в App World и вы просто хотите, чтобы запустить его, использовать URL http://appworld.blackberry.com/webstore/content/xxxx где хххх является идентификатор содержимого вашего приложения.

Кроме того, Нет смысла пытаться что-либо с помощью Глобальных событий. Начиная с OS 4.5, механизм широковещания глобального события был разделен таким образом, что системные события доставляются только системным приложениям, а не их партийным приложениям и наоборот.

Надеюсь, это поможет.

Смежные вопросы