2016-12-31 9 views
2

ionic2アプリ内の特定のページで画面の向きを横に固定したいと思います。だから私は、イオンのサイトからthe pluginをインポートし、Cordova画面の向きpluginすぎ:ionic2 - ScreenOrientation

import { ScreenOrientation } from 'ionic-native'; 

その後、私は私のconstructorでそれを呼び出してみました:

constructor(public navCtrl: NavController, 
       public orientation:ScreenOrientation 
      ) { 
       ScreenOrientation.lockOrientation('Landscape'); 
       } 

しかし、私はこのエラーを得た:

EXCEPTION: Error in ./Test class Test_Host - inline template:0:0 caused by: No provider for ScreenOrientation!

ここで問題と思われるものは何ですか?

+0

コンストラクタはプロバイダの依存性注入用です。プラグインはグローバルオブジェクトを介したアクセスです。 –

+0

関数ScreenOrientation.lockOrientation( 'Landscape');はどこで呼び出されますか?私はいろいろなところを試してみて、コンパイルの警告を出しました。 – sooon

+0

警告は何ですか?一般的に 'this.platform.readyの中にコンストラクタを置いてください –

答えて

0

コンストラクタ関数からパラメータ "public orientation:ScreenOrientation"を削除します。

2

ScreenOrientation "サービス"に利用できるプロバイダがありませんというエラーが表示されます。これらのプロバイダを使用するには、まずapp.module.tsで宣言する必要があります。

  1. 最初のインポートを追加します:
    import { ScreenOrientation } from '@ionic-native/screen-orientation';

  2. を次ににおけるプロバイダのリストにScreenOrientationを追加app.module.tsにおけるプロバイダのリストにScreenOrientationを追加するには

    @NgModule:
    providers: [ StatusBar, SplashScreen, ScreenOrientation, {provide: ErrorHandler, useClass: IonicErrorHandler} ]