2017-04-27 84 views
9

我試圖在離子2應用中做Facebook登錄,但在構建我的應用時出現此錯誤。 幫我解決了這個問題。模塊沒有導出成員'IonicNativePlugin',Ionic2 for facebook

[13點17分52秒] transpile開始... [13點17分58秒]打字稿: d:/royalworkspace/newfblogin/node_modules/@ionic-native/facebook/index.d.ts, line:1 Module'「D:/ royalworkspace/newfblogin/node_modules/@ ionic-native/core/index」' 沒有導出成員 'IonicNativePlugin'。

L1: import { IonicNativePlugin } from '@ionic-native/core'; 
    L2: export interface FacebookLoginResponse { 

- Home.ts -

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { Facebook, FacebookLoginResponse } from '@ionic-native/facebook'; 
@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(public navCtrl: NavController, private facebook: Facebook) { 

    } 

    Login(){ 
    this.facebook.login(['email']).then((Response) =>{ 
     alert('loged in'); 
     alert(JSON.stringify(Response.authResponse)); 
    },(error) => { 
     alert(error); 
    }) 
    } 
LoginDetails(){ 
    this.facebook.getLoginStatus().then((response) => { 
     if (response.status == "connected") { 
     this.facebook.api('/' + response.authResponse.userID + '?fields=id,name,gender', []).then((response) =>{ 
      alert(JSON.stringify(response)); 
     }, (error) =>{ 
      alert(error); 
     }) 
     } 
     else{ 
     alert('not loged in'); 
     }   
    }) 
    } 
    Logout(){ 
    this.facebook.logout().then((Response) => { 
     alert(JSON.stringify(Response)); 
    }, (error) =>{ 
     alert(error); 
    }) 
    } 

} 

- home.html的 -

<ion-content padding> 
    <button ion-button outline (click)="Login()">Login</button> 
<button ion-button outline (click)="LoginDetails()">Login Details</button> 
<button ion-button outline (click)="Logout()">Logout</button> 

</ion-content> 

- app.module -

import { BrowserModule } from '@angular/platform-browser'; 
import { ErrorHandler, NgModule } from '@angular/core'; 
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular'; 
import { SplashScreen } from '@ionic-native/splash-screen'; 
import { StatusBar } from '@ionic-native/status-bar'; 
import { Facebook, FacebookLoginResponse } from '@ionic-native/facebook'; 
import { MyApp } from './app.component'; 
import { HomePage } from '../pages/home/home'; 

@NgModule({ 
    declarations: [ 
    MyApp, 
    HomePage 
    ], 
    imports: [ 
    BrowserModule, 
    IonicModule.forRoot(MyApp) 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 
    HomePage 
    ], 
    providers: [ 
    StatusBar, 
    SplashScreen,Facebook, 
    {provide: ErrorHandler, useClass: IonicErrorHandler} 
    ] 
}) 
export class AppModule {} 
+0

你可以顯示你的'package.json'文件嗎? – Sampath

+0

你也可以看到:http://stackoverflow.com/a/43171634/1077309 – Sampath

+0

****得到同樣的錯誤****模塊'「D:/ royalworkspace/FacebookLogin-master/node_modules/@ ionic-native/core/index「'沒有導出 成員'IonicNativePlugin'。 L1:從'@ ionic-native/core'導入{IonicNativePlugin}; L2:出口接口FacebookLoginResponse { –

回答

34

IonicNativePlugin已被添加到新版本的ionic-native/core中,所以我不得不卸載這個並安裝最新的3.6.1版本,現在插件已經導出並且一切正常。

用這個保存自己。

npm uninstall --save @ionic-native/core 
npm install --save @ionic-native/[email protected] 
+0

謝謝你們對我的工作... –

+0

'getDetails():void {th​​is.fb.getLoginStatus()。then((response)=> {alert('Staus ='+ response.status )if(response.status =='connected'){this.fb.api('/'+ response.authResponce.userID +'?fields = id,name,gender',[])。then((response)= > {alert(JSON.stringify(response)); alert('Enter api')},(error)=> {alert(error);})} else {alert('in'in')}})}' ******這是我的getDetails(),它不返回任何用戶數據,狀態顯示連接**** –

+0

你能詳細說明這個問題嗎?它是否修復? –

4

遇到同樣的問題,並得到它的工作通過將@ionic-native/core依賴關係升級到最新版本(此時爲3.6.1)。

0

運行下面的內容,在此之後,您需要在app.module.ts文件中添加提供程序。

npm install @ionic-native/core --save 
0

在您的package.json(在項目根文件夾中),擺脫版本前面的^。因此,如果您有類似「@ ionic-native/core」:「^ 3.4.2」,請將其更改爲「@ ionic-native/core」:「3.4.2」。

保存文件,並運行npm instal然後離子服務

相關問題