离子和Cordova SMS插件

时间:2016-10-03 19:24:15

标签: android ios cordova ionic-framework ngcordova

我正在尝试将SMS cordova插件添加到我的离子应用程序中,但我失败了。

我不知道如何注入插件或使用它,文档似乎更加面向phonegapp。

我有以下内容:

已安装

  

cordova插件添加   https://github.com/cordova-sms/cordova-sms-plugin.git

我的观点

  <button ng-click="send()">Test</button>

我的控制器

angular.module('starter.controllers', [])

.controller('DashCtrl', function($scope, $http, $state, $cordovaSms) {

      $scope.send = function(){

      $cordovaSms
      .send('phonenumber', 'SMS content')
      .then(function() {
        // Success! SMS was sent
      }, function(error) {
        // An error occurred
      });

      };

})

我收到以下错误:

    ionic.bundle.js:26794 Error: [$injector:unpr] Unknown provider: 

$cordovaSmsProvider <- $cordovaSms <- DashCtrl

3 个答案:

答案 0 :(得分:1)

我认为这是一个套管问题。你使用的是离子原生的吗?如果没有,从那里开始。 bower install ionic-native --save bower uninstall ngCordova --save

然后在模块依赖项中将ngCordova替换为ionic.native

以下是我的一个项目的工作代码......

   .controller('RosterCtrl', function ($cordovaSMS, ...

   // snip ....

    $cordovaSMS.send(phone, message)
      .then(function () {
        $log.log('Message sent.');
      });

答案 1 :(得分:1)

Google更改了有关短信访问的政策,因此不再允许直接阅读传入的短信,并且将删除关联的权限(SMS_READ)。

现在,有必要使用Android SMS检索器API(Android SMS Retriever API),并且您的SMS消息需要符合特定的格式才能被您的应用拦截。

在Cordova中,使用此插件可以轻松读取传入的SMS:

cordova plugin add cordova-plugin-android-sms-retriever

Github:https://github.com/diegosiao/cordova-plugin-android-sms-retriever

答案 2 :(得分:0)

在IONIC 2上,cordova-sms-plugin解决方案选择原生短信插件。到目前为止一切顺利,除了您想要向多个收件人发送邮件的情况。

此时,即使我们使用字符串数组,cordova-sms-plugin也不会发送给多个收件人。它将成功发送给第一个收件人,但不会发送到数组的其余部分。

所以在我搜索了一段时间后,我得到了另一个cordova plugin,它将消息发送到数组中的所有数字。唯一的问题是,如果这些号码中的电话号码无效或不完整,它只会忽略它们并传递给下一个要发送的号码。

当某些数字无效或不完整时,有一个回调或至少是一个跟踪会很好,但至少它会发送到多个数字。

干杯