【问题标题】:Ionic & Cordova SMS PluginIonic 和 Cordova 短信插件
【发布时间】:2016-10-03 19:24:14
【问题描述】:

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

我不知道如何注入插件或使用它,文档似乎更面向 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

【问题讨论】:

    标签: android ios cordova ionic-framework ngcordova


    【解决方案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.');
          });
    

    【讨论】:

    • 谢谢迈克,我会试一试的!这是否允许我使用 Ionic 视图应用程序进行测试?
    • 我不相信 SMS 在 Ionic View 中有效,不。我必须使用真正的设备。我只是在我的 iPhone 上的 Ionic View 中尝试过,但什么也没发生。 Android 在 Ionic View 上可能会有所不同。
    • 我试试看会发生什么,之​​前没听说过 ionic native 可能会解决我的问题 :) 谢谢
    • Ionic Native 是现已弃用的 ngCordova 的替代品。 ionicframework.com/docs/v2/native 文档适用于 TypeScript 和 Ionic,但它适用于 Ionic 1。
    【解决方案2】:

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

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

    在 Cordova 中使用此插件轻松读取传入的短信:

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

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

    【讨论】:

      【解决方案3】:

      在 IONIC 2 上,cordova-sms-plugin 是为原生 SMS 插件选择的解决方案。到目前为止一切顺利,除了您想将消息发送给多个收件人的情况。

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

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

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

      干杯

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-06
        • 2019-06-05
        • 2016-02-26
        • 2016-06-09
        • 1970-01-01
        • 2018-09-12
        • 2021-01-01
        相关资源
        最近更新 更多