簡體   English   中英

Cordova插件正在監聽設備方向變化。 可能嗎?

[英]Cordova plugin listening to device orientation change. Is it possible?

我盡力開發一種插件,該插件可以偵聽方向更改以進行必要的更改,而無需添加必需的JavaScript代碼或編輯活動Java代碼的必要性。

有一些使用directionChangeListener的選項,但我只需要偵聽縱向和橫向模式之間的切換,而不必偵聽設備的標題。 這是可用的,但是對於這個小任務來說太可怕了。

還有其他解決方案嗎? 是否可以修改主要活動的onConfigurationChanged方法或創建一些新的onCofigurationChange偵聽器? 或事實上,CordovaPlugin不知道他周圍發生了什么?

您的Cordova插件需要同時編寫Javascript和Java代碼。 就像您將要編寫Java腳本一樣,這還不夠嗎?

window.addEventListener("orientationchange", function() {

   if (Math.abs(window.orientation) === 90) {

    // landscape view

    } else {
        // portrait view
    }

}, false);

我已經找到了解決方法(感謝Cordova郵件列表中的Andrew Grieve),所以如果有人遇到類似問題,我將其發布在這里。 關鍵是視圖(WebView或其他視圖,如果插件添加任何視圖)的onLayoutChangeListener。
將以下代碼放在某些插件方法中:

webView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
    @Override
    public void onLayoutChange(View v, int left, int top, int right,
            int bottom, int oldLeft, int oldTop, int oldRight,
            int oldBottom) {
        // some code
    }
});

但是,有一個很大的問題。 該偵聽器在API11 +中可用,因此不能在Android 2.2或2.3上運行...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM