【发布时间】:2014-12-21 18:46:25
【问题描述】:
我正在构建一个 Ionic/Cordova 应用程序。在我的应用程序中,用户可以单击电话号码以发送 SMS。当点击该号码时,本地短信应用程序将打开,然后用户可以输入他/她自己的短信并发送短信。有什么方法可以从我的应用程序中获取短信内容吗?
【问题讨论】:
标签: android ios cordova sms ionic-framework
我正在构建一个 Ionic/Cordova 应用程序。在我的应用程序中,用户可以单击电话号码以发送 SMS。当点击该号码时,本地短信应用程序将打开,然后用户可以输入他/她自己的短信并发送短信。有什么方法可以从我的应用程序中获取短信内容吗?
【问题讨论】:
标签: android ios cordova sms ionic-framework
当您使用 ionic/cordova 时,需要一个 SMS 插件来完成此类工作。
除了jsmobile短信插件,还有一个API更多的: http://plugins.cordova.io/#/package/com.rjfun.cordova.sms
如描述中所述:
sendSMS(address(s), text, successCallback, failureCallback);
listSMS(filter, successCallback, failureCallback);
deleteSMS(filter, successCallback, failureCallback);
startWatch(successCallback, failureCallback);
stopWatch(successCallback, failureCallback);
enableIntercept(on_off, successCallback, failureCallback);
restoreSMS(msg_or_msgs, successCallback, failureCallback);
活动
'onSMSArrive'
您可以通过以下任一方式获取短信内容:
或者,
顺便说一句,该插件仅适用于 Android,仅供参考。
@MikeX 建议有cordova-plugin-sms 选项,但请注意它的许可证不是免费使用的。
所以我选择使用Phonegap-SMS-reception-plugin,这是 MIT 许可证。
然后就这样了
var smsInboxPlugin = cordova.require('cordova/plugin/smsinboxplugin');
smsInboxPlugin.startReception (function(msg) {
alert(msg);
stopReadingSMS(smsInboxPlugin);
}, function() {
alert("Error while receiving messages");
stopReadingSMS(smsInboxPlugin);
});
function stopReadingSMS(smsInboxPlugin) {
smsInboxPlugin.stopReception (function() {
console.log("Correctly stopped SMS receiver");
}, function() {
console.log("Error while stopping the SMS receiver");
});
}
【讨论】:
你是说你想知道用户在另一个应用中输入了什么?如果是这样,我不相信你可以。理论上你可以尝试跳过真正的短信应用程序并使用插件:http://plugins.cordova.io/#/package/com.jsmobile.plugins.sms
【讨论】:
现在有用于cordova 扩展的离子包装器。您可以使用 $cordovaSMS (docs here)
module.controller('ThisCtrl', function($cordovaSms) {
document.addEventListener("deviceready", function () {
$cordovaSms
.send('phonenumber', 'SMS content', options)
.then(function() {
// Success! SMS was sent
}, function(error) {
// An error occurred
});
});
});
要查看用户输入的内容,您可以让他们在您的应用中编写“短信内容”。当你离开你的应用程序时,我认为你无法从原生 SMS 字段中获取文本
【讨论】:
you can use sms: url for opening native sms app for that you need to add
<access origin="sms:*" launch-external="yes"/> inside config.xml
添加以上行后使用短信链接如下
<a class="button icon-left ion-android-mail button-balanced button-outline" href="sms:9808350855">SMS</a>
【讨论】: