Je construis une application ionique/cordova. Depuis mon application, l'utilisateur peut cliquer sur un numéro de téléphone pour envoyer un SMS. Lorsque vous cliquez sur ce numéro, l'application native SMS s'ouvre et l'utilisateur peut saisir son propre SMS et envoyer le SMS. Y at-il un moyen, de mon application, je peux obtenir le contenu SMS?
Merci d'avance.
Comme vous utilisez ionic/cordova, un plugin SMS est nécessaire pour effectuer ce travail.
Outre le plug-in jsmobile SMS, il en existe un autre avec plusieurs API: http://plugins.cordova.io/#/package/com.rjfun.cordova.sms
Comme mentionné dans la description:
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);
Événements
'onSMSArrive'
Vous pouvez obtenir le contenu SMS de l'une des manières suivantes:
Ou,
BTW, le plugin ne fonctionne que pour Android, FYI.
Il existe l'option cordova-plugin-sms , comme @MikeX l'a suggéré, mais notez que sa licence n'est pas d'utilisation gratuite.
J'ai donc choisi d'utiliser Phonegap-SMS-reception-plugin , qui est la licence MIT.
et puis juste
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");
});
}
Voulez-vous savoir ce que l'utilisateur a saisi dans une autre application? Si c'est le cas, je ne crois pas que vous puissiez le faire. En théorie, vous pouvez essayer de sauter la vraie application SMS et d'utiliser un plugin: http://plugins.cordova.io/#/package/com.jsmobile.plugins.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
après avoir ajouté la ligne ci-dessus, utilisez le lien SMS comme suit
<a class="button icon-left ion-Android-mail button-balanced button-outline" href="sms:9808350855">SMS</a>
De nos jours, il existe des wrappers ioniques pour les extensions Cordova. Vous pouvez utiliser $ cordovaSMS ( docs ici )
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
});
});
});
Pour voir ce que l'utilisateur tape, vous pouvez lui demander d'écrire le "contenu SMS" dans votre application. Une fois que vous quittez votre application, je ne pense pas que vous puissiez récupérer le texte du champ natif SMS