2010-02-24 57 views
3

我的BlackBerry應用程序正在使用BrowserSession打開網頁。當網頁打開時,用戶將輸入他們的登錄憑據,然後他們被轉發到一個新的網站,告訴他們關閉BlackBerry瀏覽器並返回到我的應用程序。 (... OAuth認證)需要幫助從BrowserSession返回到BlackBerry應用程序

現在,我想看看我是否可以執行以下操作之一:

  • 創建我的應用程序自定義的URI方案,以便網站可以轉發到一個地址,如「myapp:// ...」,我的應用程序將打開。我一直在網上和關於這個論壇的研究,我不認爲這是可能的。我一直在尋找很多關於JSR 211和內容處理程序和MIME類型的信息。我還研究了JDE示例中的chapidemo演示。

  • 關閉BrowserSession。我知道我不能在我的應用程序中執行此操作。在我的應用程序發出成功的http請求後,我成功地將我的應用程序移到了前臺,但是當網站轉發到新頁面時(它告訴用戶關閉瀏覽器),瀏覽器回到前臺

  • 以某種方式確定當前BrowserSession的URL。如果我能做到這一點,那麼當我識別轉發到的頁面的URL時,我可以將應用程序放在前臺。

不幸的是,因爲我在瀏覽器中打開該網站需要支持javascript我不能使用BrowserField和Ajax ......我在BrowserField嘗試這樣做,並沒有工作。

有沒有人有任何意見或建議?

謝謝!


更新:

我的代碼進行註冊:

BrowserContentProviderRegistry converterRegistry = BrowserContentProviderRegistry 
       .getInstance(); 
     if (converterRegistry != null) { 
      converterRegistry.register(new BrowserPlugin()); 
     } 

回答

3

您可以使用BrowserContentProviderRegistry類註冊自定義BrowserContentProvider實現具有自定義MIME類型您的應用程序。完成OAuth後,請將其重定向到您的網站上提供該MIME類型文檔的頁面。這會導致你的BrowserContentProvider被執行,然後你可以做任何你喜歡的事情,比如把你的應用程序帶回前臺。

+1

感謝您的迴應,Marc。我會試試這個併發布我的結果... – littleK 2010-02-25 05:01:01

+0

Marc,我是否也需要將應用程序(在啓動時)註冊爲HttpFilter?我正在查看以下鏈接:http://docs.blackberry.com/en/developers/deliverables/652/BlackBerry_Application_Developer_Guide_Volume_2.pdf – littleK 2010-02-25 05:52:20

+0

不需要,BrowserContentProvider就是您所需要的。有關示例,請參閱BrowserPlugin.java示例應用程序。插件返回的實際「內容」可以是空的(即一個空的Horizo​​ntalFieldManager),但重要的是您可以在其getBrowserContent方法中運行您想要的任何代碼,包括將您的應用程序放到前臺的代碼。 – 2010-02-25 08:09:36