【问题标题】:Type Error Object not a function when adding SMS plugin Ionic添加 SMS 插件 Ionic 时类型错误对象不是函数
【发布时间】:2019-05-06 15:17:35
【问题描述】:

尝试使用

cordova-sms-插件

在应用程序中添加短信功能。 我已经完成了文档中提到的安装-> https://ionicframework.com/docs/native/sms/

我添加了一行

import { SMS } from '@ionic-native/sms';

但是当我添加时

public sms: SMS

在构造函数参数中,它在 JS 控制台中抛出以下错误并且页面停止工作。

core.js:12501 ERROR 错误:未捕获(在承诺中):TypeError: Object(...) is not a function TypeError: Object(...) 不是函数 在 index.js:93 在 Module../node_modules/@ionic-native/sms/index.js (index.js:142) 在 webpack_require (bootstrap:83) 在 Module../src/app/pages/sendtext/sendtext.page.ts (pages-sendtext-sendtext-module.js:92) 在 webpack_require (bootstrap:83) 在 Module../src/app/pages/sendtext/sendtext.module.ts (pages-sendtext-sendtext-module.js:18) 在 webpack_require (bootstrap:83) 在 $_lazy_route_resource 惰性命名空间对象:32 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) 在 Object.onInvoke (core.js:14060) 在 resolvePromise (zone.js:814) 在 resolvePromise (zone.js:771) 在 zone.js:873 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) 在 Object.onInvokeTask (core.js:14051) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) 在 Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) 在 drainMicroTaskQueue (zone.js:595)

这只是一个基本的离子安装,唯一添加的插件是 SMS 插件。 任何帮助表示赞赏。

下面是我在 package.json 文件中的依赖部分。

“依赖”:{ "@angular/common": "~7.0.0", "@angular/core": "~7.0.0", "@angular/forms": "~7.0.0", "@angular/http": "~7.0.0", "@angular/platform-b​​rowser": "~7.0.0", "@angular/platform-b​​rowser-dynamic": "~7.0.0", "@angular/router": "~7.0.0", "@ionic-native/core": "5.0.0-beta.21", "@ionic-native/sms": "^4.18.0", "@ionic-native/splash-screen": "5.0.0-beta.21", "@ionic-native/status-bar": "5.0.0-beta.21", "@ionic/angular": "4.0.0-beta.16", “cordova-android”:“7.1.4”, “cordova-ios”:“4.5.5”, "cordova-plugin-device": "^2.0.2", "cordova-plugin-ionic-keyboard": "^2.1.3", "cordova-plugin-ionic-webview": "^2.2.5", "cordova-plugin-splashscreen": "^5.0.2", "cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-whitelist": "^1.3.3", “cordova-sms-plugin”:“0.1.13”, "core-js": "^2.5.4", "rxjs": "~6.3.3", “zone.js”:“~0.8.26” },

【问题讨论】:

  • 我希望你在 app.Module 中添加了这个模块。
  • 添加了行 import { SMS } from '@ionic-native/sms';在 app.module 中。没有将它添加到任何提供者或任何东西。

标签: angular ionic-framework sms cordova-plugins


【解决方案1】:

添加类似...的模块

import { SMS} from '@ionic-native/sms';
@NgModule({
  providers: [
   SMS
  ]
})

【讨论】:

  • 仍然收到错误提示 index.js:93 Uncaught TypeError: Object(...) is not a function
  • 尝试使用ionic serve -l重建开发环境
  • 我已经从每个页面中删除了插件引用。仅在 app.module 页面中有导入,并且在提供者列表中有 SMS。我仍然得到同样的错误。但是应用的首页根本没有加载。
  • 请确保您遵循这些步骤,1. 添加带有ionic cordova plugin add cordova-sms-pluginnpm install --save @ionic-native/sms 的短信插件 2. 在app.module 中添加sms,我在上面的答案中提到了 3. 然后是相关页面你需要添加像private sms: SMS 这样的构造函数 4. 现在有了this.sms 你可以使用短信插件的所有方法
  • 全新安装。 npm install 命令给出了这个警告。 npm WARN @ionic-native/sms@4.18.0 需要 @ionic-native/core@^4.11.0 的对等点,但没有安装。您必须自己安装对等依赖项。但是,“@ionic-native/core”:“5.0.0-beta.21”,在 package.json 文件中。
【解决方案2】:

尝试添加这个

npm i rxjs@6 rxjs-compat@6 promise-polyfill --save

【讨论】:

    【解决方案3】:

    好的,我也遇到了同样的问题 在我的 package.json 中,我只是更改了 sms 插件版本并将其编写为与 ionic-native/core 相同,然后执行命令 npm install ,当我再次为我的项目提供服务时,它解决了我的问题

    "@ionic-native/core": "^5.0.0",
    "@ionic-native/sms": "^5.0.0",
    

    也在你的模块中

    import { SMS} from '@ionic-native/sms/ngx';
    @NgModule({
      providers: [
       SMS
      ]
    })
    

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 2015-01-25
      • 2013-06-15
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 2020-02-18
      • 1970-01-01
      相关资源
      最近更新 更多