模块没有导出成员'IonicNativePlugin',Ionic2 for facebook
Posted
技术标签:
【中文标题】模块没有导出成员\'IonicNativePlugin\',Ionic2 for facebook【英文标题】:Module has no exported member 'IonicNativePlugin', Ionic2 for facebook模块没有导出成员'IonicNativePlugin',Ionic2 for facebook 【发布时间】:2017-04-27 08:27:44 【问题描述】:我正在尝试在 ionic 2 应用程序中登录 Facebook,但在构建我的应用程序时出现此错误。 帮我解决这个问题。
[13:17:52] 转译开始 ... [13:17:58] 打字稿: D:/royalworkspace/newfblogin/node_modules/@ionic-native/facebook/index.d.ts, 线路:1 模块“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
【问题讨论】:
你能出示你的package.json
文件吗?
你也可以看到这个:***.com/a/43171634/1077309
****得到相同的错误 ****模块 '"D:/royalworkspace/FacebookLogin-master/node_modules/@ionic-native/core/index"' 没有导出成员 'IonicNativePlugin' . L1:从'@ionic-native/core'导入 IonicNativePlugin ; L2:导出接口 FacebookLoginResponse
【参考方案1】:
IonicNativePlugin 是在 ionic-native/core 的较新版本中添加的,所以我不得不卸载这个并安装最新的 3.6.1,现在插件已导出,一切正常。
用这个自救。
npm uninstall --save @ionic-native/core
npm install --save @ionic-native/core@latest
【讨论】:
getDetails(): void this.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('not loged in') )
******这是我的getDetails(),它不返回任何用户数据,状态显示已连接****
你能详细说明问题吗?修复了吗?【参考方案2】:
确实遇到了同样的问题,并通过将 @ionic-native/core
依赖项升级到最新版本(此时升级到 3.6.1
)使其正常工作。
【讨论】:
【参考方案3】:运行下面的代码,之后你需要在 app.module.ts 文件中添加提供者。
npm install @ionic-native/core --save
【讨论】:
【参考方案4】:在你的 package.json 中(在项目根文件夹中),去掉版本前面的 ^。因此,如果您有类似 "@ionic-native/core": "^3.4.2" 的内容,请将其更改为 "@ionic-native/core": "3.4.2"。
保存文件,然后运行 npm instal,然后 ionic serve。
【讨论】:
以上是关于模块没有导出成员'IonicNativePlugin',Ionic2 for facebook的主要内容,如果未能解决你的问题,请参考以下文章
Vue / Typescript,得到模块'“*.vue”'没有导出成员
TS2614:模块没有导出成员“NextHandleFunction”