对于ios,创建一个 mm 文件,一个object-c文件,您可以在其中混合c和objective-c代码 . 只需创建一个c方法,在该方法中使用object-c来存档您的目标 . 它与Pablos的答案非常相似,但你不能使用swift .
-2
您使用的是混合应用还是原生应用?不过,您可以根据显示宽度以编程方式更改屏幕方向 .
首先获取设备显示大小,如果大小正确,请更改方向 .
这里有一些代码片段 .
Swift 3.0
//Get the display size
let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
//Change orientation
let value = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
Android
//Get the display size
Point displaySize = new Point();
activity.getWindowManager().getDefaultDisplay().getRealSize(displaySize);
Rect windowSize = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(windowSize);
int width = displaySize.x - Math.abs(windowSize.width());
int height = displaySize.y - Math.abs(windowSize.height());
//Change orientation
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//OR
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
2 回答
这可能与Qt有关 . 诀窍是为每个平台包含本机代码,因为Qt不支持开箱即用 . 您可以通过一些工作轻松地将Android-Java和ios-objective-c代码包含到您的c应用程序中:
对于Android,使用Pablo中的代码创建一个java类 . 利用QtAndroid JNI包装器来调用这些方法(参见https://doc.qt.io/qt-5/qtandroid.html和https://doc.qt.io/qt-5/qandroidjniobject.html#details) . Pro Tip: 您可以使用https://github.com/benlau/androidnative.pri来调用java类 . 它比使用JNI类要容易得多,但需要正确的设置 .
对于ios,创建一个
mm
文件,一个object-c文件,您可以在其中混合c和objective-c代码 . 只需创建一个c方法,在该方法中使用object-c来存档您的目标 . 它与Pablos的答案非常相似,但你不能使用swift .您使用的是混合应用还是原生应用?不过,您可以根据显示宽度以编程方式更改屏幕方向 .
首先获取设备显示大小,如果大小正确,请更改方向 .
这里有一些代码片段 .
Swift 3.0
Android
如果您要使用Cordova,可以使用以下插件:
https://www.npmjs.com/package/cordova-plugin-screen-orientation