我努力开发插件,可以听取方向更改以进行必要的更改,而无需添加必要的javascript代码或编辑活动java代码的必要性。
可以选择使用orientationChangeListener,但我只需要在纵向和横向模式之间切换,而不是在设备标题之间切换。这是可用的,但对于这项小任务来说太可怕了。
还有其他选择可以解决吗?是否可以修改主要活动的onConfigurationChanged方法或创建一些新的onCofigurationChange监听器? 或者事实上CordovaPlugin不知道他周围发生了什么?
答案 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 ...
上运行