如何在黑莓的瀏覽器上使用事件瀏覽器關閉瀏覽器。當瀏覽器加載時,我想模擬手持設備上按ESCAPE鍵,以便應用程序退出瀏覽器並返回主屏幕。我自己嘗試過這樣做,但沒有成功。非常感激任何的幫助。瀏覽器上的EventInjector
0
A
回答
2
如果你真的想要控制瀏覽器,你可以在你的應用中使用BrowserField
,BrowserField2
。
您還可以爲按鍵或追蹤哪些應用程序可見的注入偵聽器。但它會非常棘手,因爲用戶經常在應用程序之間切換,並且現在有相當多的帶有觸摸界面的設備(用戶可以在沒有esc按鈕的情況下關閉頁面)。
1
不確定爲什麼要關閉瀏覽器,但我會假設你知道這是正確的事情(另外,Eugen已經建議你如何使用BrowserField
讓用戶在你的應用程序中瀏覽並避免這個問題)。
無論如何,我有一些代碼,我用來關閉相機(我的應用程序確實啓動,故意)。您可以用相同的方式關閉瀏覽器。這是一個黑客,但在當時,這是我解決了這個問題的辦法:
/** Delay required to keep simulated keypresses from occurring too fast, and being missed */
private static final int KEYPRESS_DELAY_MSEC = 100;
/** Max number of attempts to kill camera via key injection */
private static final int MAX_KEY_PRESSES = 10;
/** Used to determine when app has been exposed by killing Camera */
private MainScreen _mainScreen;
/** Counter for toggling key down/up */
private int _keyEventCount = 0;
public void run() {
// The picture has been taken, so close the camera app by simulating the ESC key press
if (!_mainScreen.isExposed()) {
int event = ((_keyEventCount % 2) == 0) ? EventInjector.KeyCodeEvent.KEY_DOWN :
EventInjector.KeyCodeEvent.KEY_UP;
EventInjector.KeyEvent injection = new EventInjector.KeyEvent(event, Characters.ESCAPE, 0);
// http://supportforums.blackberry.com/t5/Java-Development/How-to-use-EventInjector-to-inject-ESC/m-p/74096
injection.post();
injection.post();
// Toggle back and forth .. key up .. key down
_keyEventCount++;
if (_keyEventCount < MAX_KEY_PRESSES) {
// Keep scheduling this method to run until _mainScreen.isExposed()
UiApplication.getUiApplication().invokeLater(this, KEYPRESS_DELAY_MSEC, false);
} else {
// Give up and just take foreground ... user will have to kill camera manually
UiApplication.getUiApplication().requestForeground();
}
} else {
// reset flag
_keyEventCount = 0;
}
}
我_mainScreen
是應該通過關閉相機應用程序被發現的Screen
,所以我用它來測試,我關閉相機成功。此外,在我的應用程序,我重置
_keyEventCount = 0;
每次相機啓動(這是沒有顯示在上面)。
更新:
此外,這是我的_mainScreen
對象需要跟蹤它無論是暴露或不能代碼:
private boolean _isExposed = false;
protected void onExposed() {
super.onExposed();
_isExposed = true;
}
protected void onObscured() {
super.onObscured();
_isExposed = false;
}
public boolean isExposed() {
return _isExposed;
}
相關問題
- 1. 瀏覽器上的
- 2. iFrame溢出x在Chrome瀏覽器,IE瀏覽器,Opera瀏覽器,但不是火狐瀏覽器上的BUG
- 3. Android上的Chrome瀏覽器
- 4. 移動瀏覽器和舊瀏覽器上的內容溢出
- 5. 跨瀏覽器編碼:Mac上的IE瀏覽器
- 6. Chrome瀏覽器 - 相當於Firefox瀏覽器的IE瀏覽器
- 7. 瀏覽器內的瀏覽器
- 8. 瀏覽器內部的瀏覽器
- 9. Android:2瀏覽器中的瀏覽器
- 10. 問題上IE8瀏覽器
- 11. 上awesomium網頁瀏覽器
- 12. 禁用瀏覽器平臺/在瀏覽器平臺上登錄
- 13. Python web瀏覽器 - 在Windows上註冊瀏覽器
- 14. 在Android瀏覽器上顯示瀏覽器地址欄
- 15. Android上icudt48l.dat的瀏覽器/解析器?
- 16. IE瀏覽器「瀏覽器」瀏覽器欄
- 17. 互聯網瀏覽器,Chrome瀏覽器Chrome瀏覽器
- 18. Mac瀏覽器上的文件上傳錯誤,而不是PC瀏覽器
- 19. 無法從外部瀏覽器瀏覽Azure上的VB.NET網站
- 20. Facebook的Like按鈕和Twitter跟隨按鈕iOS上的瀏覽器(Chrome瀏覽器/ Safari瀏覽器)
- 21. 黑莓 - EventInjector激活揚聲器
- 22. 網絡瀏覽器裏面的blogspot? (瀏覽器內的瀏覽器)
- 23. Chrome瀏覽器相比,Safari瀏覽器
- 24. Twilio瀏覽器到瀏覽器
- 25. 如何禁用瀏覽器瀏覽器?
- 26. Safari瀏覽器從其他瀏覽器
- 27. MySQL 2瀏覽器像sqlite3瀏覽器?
- 28. P2P(瀏覽器來瀏覽器)與Java
- 29. 用戶Agnet(瀏覽器/瀏覽器)Progmatically
- 30. 跨瀏覽器與多瀏覽器