2017-09-13 16 views
1

最近、私のアプリにプッシュ通知機能を追加しています。私はこのlinkにあるFCNプラグインを使用していて、Ionic 2フレームワークを使って開発しています。通知は配信されますが、私がそれをタップすると、必要な内側のページではなく、単にアプリケーションのホームページが開きます。プッシュ通知をクリックした後にページを開くIonic 2 iOS

私はどういうわけか、コード this.nav.push(this.horoscopePage);のこの行は、私が代わりにからNavControllerを使用する場合、それは私にこのエラーを与えるもの

を行いません。このコードに

declare var FCMPlugin; 
@Component({ 
    templateUrl: 'app.html' 
}) 
export class MyApp { 
    rootPage:any = HomePage; 
    horoscopePage:any = HoroscopeHomePage; 
    @ViewChild(Nav) nav: Nav; 

    ********************** 

    FCMPlugin.onNotification(function(data){ 
     if(data.wasTapped){ 
     //Notification was received on device tray and tapped by the user. 
     if(data.topic =="horoskopi" && data.type=="list"){ 

     console.log(JSON.stringify(data)); 

     this.nav.push(this.horoscopePage); 

     } 

     }else{ 

     if(data.topic =="horoskopi" && data.type=="list"){ 

     console.log(JSON.stringify(data)); 

     this.nav.push(this.horoscopePage); 
     } 
     } 
    }); 
    }); 

を使用していた

MyApp_Host.html:1 ERROR Error: No provider for NavController! 
    at injectionError (core.es5.js:1231) 
    at noProviderError (core.es5.js:1269) 
    at ReflectiveInjector_._throwOrNull (core.es5.js:2770) 
    at ReflectiveInjector_._getByKeyDefault (core.es5.js:2809) 
    at ReflectiveInjector_._getByKey (core.es5.js:2741) 
    at ReflectiveInjector_.get (core.es5.js:2610) 
    at AppModuleInjector.NgModuleInjector.get (core.es5.js:3578) 
    at resolveDep (core.es5.js:11039) 
    at createClass (core.es5.js:10903) 
    at createDirectiveInstance (core.es5.js:10723) 

答えて

1

あなたはpublic navCtrl: NavControllerconstructorに追加してから、コードを

私はイオンの公式ドキュメントで見ていた
this.navCtrl.push(this.horoscopePage); 
+0

Dr. Geek私はそれを試みましたが、デバイスにアプリケーションをインストールすると、スプラッシュ画面の読み込みが完了した後、空の画面が表示されます。 – Xhulio

+0

https://stackoverflow.com/questions/46139512/how-can-i-decrease-the-ionic-cordova-project-start-duration –

+0

問題の説明が正しいかどうかわかりません。 app.component.tsクラスにNavControllerを追加した場合にのみ、空の画面が表示されます。私はそれを削除すると、アプリはいつものように開きます。 – Xhulio

0

まあ後、私はあなたがNavControllerを注入することができないので、ナビゲーションコントローラであるすべてのコンポーネントがそうroot componentの子供がいるので、我々はapp.component.tsNavControllerを使用することができないことが分かりましたそれらは注射することができない。詳細はhereをクリックしてください。

新しいPageFCM.onNotifications()の機能の中にプッシュできなかったのは、アプリケーションのscopeを変更したことでした。ソリューションは簡単でした:矢印機能を使用してください:

FCMPlugin.onNotification(
     (data)=>{ 
      if(data.wasTapped){ 
      //do something 
      } 
      else {  
       //do something 
      } 
     }); 
+0

私は矢印機能も使用していますそれでも同じエラーが発生します。 –

関連する問題