Cordova插件听设备方向改变。可能吗?

时间:2014-07-02 19:33:55

标签: android cordova cordova-plugins

我努力开发插件,可以听取方向更改以进行必要的更改,而无需添加必要的javascript代码或编辑活动java代码的必要性。

可以选择使用orientationChangeListener,但我只需要在纵向和横向模式之间切换,而不是在设备标题之间切换。这是可用的,但对于这项小任务来说太可怕了。

还有其他选择可以解决吗?是否可以修改主要活动的onConfigurationChanged方法或创建一些新的onCofigurationChange监听器? 或者事实上CordovaPlugin不知道他周围发生了什么?

2 个答案:

答案 0 :(得分:2)

您的Cordova插件需要编写Javascript和Java代码。正如你将要编写Javascript一样,这还不够吗?

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

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

    // landscape view

    } else {
        // portrait view
    }

}, false);

答案 1 :(得分:0)

我已经找到了解决方案(感谢Andrew Grieve在Cordova邮件列表中),所以我在这里发布,如果有人会遇到类似的问题。键是onLayoutChangeListener视图(WebView或其他视图,如果插件添加任何视图) 将下面的代码放在插件的某些方法中:

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 ...

上运行