web-dev-qa-db-ja.com

SMSネイティブ経由で送信されたコンテンツSMS app cordova

Ionic/cordovaアプリを作成しています。私のアプリケーションから、ユーザーはSMSを送信するために電話番号をクリックできます。その番号をクリックすると、ネイティブSMSアプリが開き、ユーザーは自分のSMSを入力して、SMSを送信できます。私のアプリはSMSコンテンツを取得できますか?

前もって感謝します。

11
Rashidul Islam

Ionic/cordovaを使用しているため、このような作業を行うにはSMSプラグインが必要です。

Jsmobile SMSプラグインの他に、より多くの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'

次のいずれかの方法でSMSコンテンツを取得できます。

  1. uIを実装し、ユーザーの入力を取得し、プラグインのAPIを呼び出してSMSを送信します。

または、

  1. デフォルトのSMSアプリにメッセージを送信させてから、送信済みボックスからSMSを読み取ります。

ところで、プラグインはAndroidのみ、参考までに。

8
MikeX

@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");
    });
}
1
yishaiz

ユーザーが別のアプリに何を入力したか知りたいと言っていますか?もしそうなら、私はあなたができるとは思わない。理論的には、実際のSMSアプリをスキップして、プラグインを使用してみてください: http://plugins.cordova.io/#/package/com.jsmobile.plugins.sms

0
Raymond Camden
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

上記の行を追加した後、次のようにSMSリンクを使用します

<a class="button icon-left ion-Android-mail button-balanced button-outline" href="sms:9808350855">SMS</a>
0
Mahen

現在、cordova拡張機能用のionicラッパーがあります。$ cordovaSMSを使用できます( ここにドキュメント

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コンテンツ」を書き込んでもらうことができます。アプリを離れると、ネイティブのSMSフィールドからテキストを取得できるとは思いません

0
Connor Leech