我是Ionic 4的新手,我正在尝试将屏幕方向设置为横向,并参考文档,这就是我正在做的事情:
...
import {ScreenOrientation} from '@ionic-native/screen-orientation';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html'
})
export class AppComponent {
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
private screenOrientation: ScreenOrientation,
) {
this.initializeApp();
}
initializeApp() {
this.screenOrientation.lock(ScreenOrientation.ORIENTATIONS.LANDSCAPE);
...
}
}
在编译过程中,出现此错误:
[ng] src / app / app.component.ts(24,33)中出现错误:错误TS2345:类型'string'的参数不能分配给类型'OrientationLockType'的参数。
并在浏览器控制台上:
未捕获的错误:无法解析AppComponent的所有参数:([对象对象],[对象对象],[对象对象] 、?)。 在语法错误(compiler.js:2426)[] ...
答案 0 :(得分:0)
第四个参数的注入有问题, 您是否正确安装了屏幕方向插件?
ionic cordova plugin add cordova-plugin-screen-orientation
npm install @ionic-native/screen-orientation
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-screen-orientation/
如果这不起作用,则应尝试这种方式(无需导入和注入)
cordova plugin add cordova-plugin-screen-orientation
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-screen-orientation/
此外,如果您想对整个应用程序强制使用横向,则可以在config.xml中添加首选项
<preference name="orientation" value="landscape" />
我已经对其进行了测试,并且可以在android平台7.1.4中工作
答案 1 :(得分:0)
您使用离子V4,请参阅文档,导入正确的内容。
import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';
不是
import {ScreenOrientation} from '@ionic-native/screen-orientation';
答案 2 :(得分:0)
确保使用插件将ScreenOrientation
添加到模块中的providers数组中。
例如app.module.ts
答案 3 :(得分:0)
使用插件在模块中提供程序数组。
providers: [
ScreenOrientation
]
答案 4 :(得分:0)
这对我有用(离子5)。在您的page.module内部,导入依赖项:
import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';
并提供给模块:
providers: [
ScreenOrientation,
...]