2017-04-27 32 views
9

Próbuję zrobić logowanie do Facebooka w aplikacji jonowej 2, ale otrzymałem ten błąd podczas budowania mojej aplikacji. pomóżcie mi rozwiązać ten problem.Moduł nie ma wyeksportowanego członka "IonicNativePlugin", Ionic2 na facebooka

[13:17:52] transpile zaczęło ... [13:17:58] maszynopis: D: /royalworkspace/newfblogin/node_modules/@ionic-native/facebook/index.d.ts, line: 1 Moduł "" D:/royalworkspace/newfblogin/node_modules/@ ionic-native/core/index "' nie ma wyeksportowanego członka " 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

Czy możesz pokazać swój plik 'pakiet.json'? – Sampath

+0

Możesz to również zobaczyć: http://stackoverflow.com/a/43171634/1077309 – Sampath

+0

**** ten sam błąd **** Moduł "" D:/royalworkspace/FacebookLogin-master/node_modules/@ ionic-native/core/index "" nie ma wyeksportowanego elementu "IonicNativePlugin" o numerze . L1: importuj {IonicNativePlugin} z '@ ionic-native/core'; L2: interfejs eksportu FacebookLoginResponse { –

Odpowiedz

34

IonicNativePlugin został dodany w nowszej wersji jonowo-natywnej/core, więc musiałem odinstalować tę i zainstalować najnowszą wersję 3.6.1, a teraz wtyczka została wyeksportowana i wszystko działa poprawnie.

Ratujcie się tym.

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

dziękuję to działa dla mnie ... –

+0

'getDetails(): void {this.fb.getLoginStatus(). Then ((odpowiedź) => {alert (" Staus = '+ response.status) if (response.status == 'connected') {this.fb.api ('/' + response.authResponce.userID + '? fields = id, name, gender', []). then then ((odpowiedź) = > {alert (JSON.stringify (response)); alert ("Enter api")}, (błąd) => {alert (błąd);})} else {alert ("nie zalogowany")}})} ****** to jest mój getDetails(), który nie zwraca żadnych danych użytkownika, status pokazuje podłączony **** –

+0

Czy możesz rozwinąć problem? Czy to jest naprawione? –

4

Wystąpił ten sam problem i zrobiło się gorzej king, aktualizując zależność @ionic-native/core do najnowszej wersji (w tym momencie do 3.6.1).

0

Uruchom poniżej, a następnie dodaj dostawcę w pliku app.module.ts.

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

W swoim package.json (w folderze głównym projektu) pozbyć się^przed wersją. Jeśli masz coś takiego jak "@ ionic-native/core": "^ 3.4.2", zmień go na "@ ionic-native/core": "3.4.2".

Zapisz plik i uruchom npm instal, a następnie jonowy służyć.