現在、[Monaca]Cordovaを使用し、電話を着信した時にデータベースへ電話番号を記録するアプリを開発しております。
※アプリ対象は、Androidアプリのみを対象として開発を行っております。
・(Aパターン)アプリの起動中に電話を着信
▶︎OK(電話番号をサーバーへ送信)
・アプリを起動後、ホームボタンにてホームを表示中に電話を着信
▶︎OK(電話番号をサーバーへ送信)
・アプリを起動後、起動中アプリからスワイプまたは×をクリックしてアプリを閉じた後に電話を着信
▶︎NG(電話番号はサーバーへ送信されません)
現在、「cordova-phone-call-trap」プラグインをインストールし処理を実装しておりますが、
アプリを閉じた後、または閉じている状態にて電話を着信した際に同様に電話番号をサーバーへ送信する処理を行う方法はありませんでしょうか。
※このプラグインをインストールすれば実現化、またはこの部分に処理を足すと実現することができるなど、ご教授をいただけますと、幸いでございます。
index.htmlーーーーーー
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: content: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> <script src="components/loader.js"></script> <link rel="stylesheet" href="components/loader.css"> <link rel="stylesheet" href="css/style.css"> <script src="main.js"></script> </head> <body> 着信電話番号取得テスト用 </body> </html>ーーーーーー
main.jsーーーーーー
// 電話番号サーバーへ送信
function sendToPhoneNumberServer( calling_number ) {
return $.ajax({
url : '×××',
data: {
'tel' : calling_number,
},
type : 'GET',
dataType : 'text'
});
}
document.addEventListener("deviceready",function() {
PhoneCallTrap.onCall(function(obj) {
var callObj = JSON.parse(obj),
state = callObj.state,
callingNumber = callObj.incomingNumber;
switch (state) { case "RINGING": // 着信 console.log("Phone is ringing"); console.log(callingNumber); // 電話番号サーバーへ送信(通信成功) sendToPhoneNumberServer(callingNumber).done(function(result) { // 処理 console.log( result ); // 電話番号サーバーへ送信(通信失敗) }).fail(function(result) { // 処理 console.log( result ); // 電話番号サーバーへ送信(通信完了) }).always(function(result) { // 処理 console.log( result ); }); break; case "OFFHOOK": // 応答・拒否・発信 console.log("Phone is off-hook"); break; case "IDLE": // 終了 console.log("Phone is idle"); break; } });
});
ーーーーーー
プラグインーーーーーー
https://github.com/the-control-group/cordova-phone-call-trap
ーーーーーー
何卒、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。