我正在尝试将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
答案 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,它将消息发送到数组中的所有数字。唯一的问题是,如果这些号码中的电话号码无效或不完整,它只会忽略它们并传递给下一个要发送的号码。
当某些数字无效或不完整时,有一个回调或至少是一个跟踪会很好,但至少它会发送到多个数字。
干杯