无法在Ionic中使用cordova插件列出SMS

时间:2015-01-10 11:11:57

标签: angularjs cordova ionic-framework cordova-plugins

我尝试使用以下链接中提供的插件

https://github.com/floatinghotpot/cordova-plugin-sms?files=1

我收到错误短信未定义

以下是我的控制器代码

angular.module('starter.controllers', [])
  .controller('SMSCtrl', function($scope ,$ionicPopup ) {
    $scope.data = {};
    $scope.SMSlist = function() {
      console.log("Button click");
      var filter = {
        box : 'inbox', //inbox, sent, draft
        //following 4 filters should not be applied together, they are OR relationship
        read :1, //0 for unread and 1 for already
        // _id: 1234, //specify the msg id
        // body : 'This is a test SMS' , //content to match
        // address: '+9731151243';

        indexFrom : 0,
        maxCount : 10,

      };   
      if(SMS) SMS.listSMS(filter,function(data){
        if(Array.isArray(data)){
          var sms = data[i];
          console.log(sms);
          $scope.article = sms;
      }
    }, function(err) {
      var alertPopup = $ionicPopup.alert({
        title: 'Reading Failed!',
        template: 'Read Failed'
      });
    })
  }
})

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。

您需要使用

中的SMS插件
$ionicPlatform.ready(function() {
   // Your plugin use here
}

答案 1 :(得分:0)

尝试

if(window.SMS) window.SMS.listSMS(filter,function(data){
    if(Array.isArray(data)){
      var sms = data[i];
      console.log(sms);
      $scope.article = sms;
  }

答案 2 :(得分:0)

要解决“未定义短信”的问题,您需要在strip()之前添加declare var SMS: any;

然后,要列出SMS,必须从JSON中提取所有值(您的@Component({ ... })在JSON中)。 为此,您只需要在data之前添加JSON.stringify(data);并删除function即可:

data

因此,if(SMS) SMS.listSMS(filter, (data)=>{ JSON.stringify(data); if(Array.isArray(data)) { for(var data in data) { this.msg = ListSms[data].address; } } },Error=>{}), 现在拥有所有短信。