1

私は、大学の課題のために、AngularJS で Firefox OS 用のアプリを作成する方法を独学で学んでいます。これは、JS でアプリを作成する最初の試みです。

このアプリの目的は、SMS 経由で送信された「コマンド」に基づいてコマンドを実行することです (別名、「大きな音を鳴らして」、「デバイスをロックして」、「Wi-Fi をオンにして」、SMS コマンドに GPS の位置情報で応答します)。$window.alert('Messaged Received')現時点では、SMS が受信されたときに表示する単純なものを実行しようとしています。

私の問題は、addEventListener着信 SMS 用に を作成しようとしていて、今のところ$window.alert(). 後で、ケース スイッチを使用します。

イベント リスナーを作成するためにMDN APIを参照しました。

var mozMM = navigator.mozMobileMessage;
mozMM.addEventListener('received', function addEventListener(evt) {
    // Display a alert when a message is received
    $window.alert('SMS received');
    $window.alert(evt.message.body);
}, false);

Mymanifest.webappは、関連するすべての設定を含むように設定されています。

"type" : "certified",
"permissions": {
    "backgroundservice":{},
    "sms":{},
    ...
},
"messages": [
    { "sms-received": "/index.html" },
    { "notification": "/index.html" }
]

アプリから問題なく SMS を送信できます。したがって、権限に問題はないと思います。mozMobileMessageまた、オブジェクトへのフル アクセス権があることも確認しました。

テストのために、ルート化された Geekphone を使用しており、認定アプリをインストールできます。

ソースコードを github にアップロードしました: https://github.com/s3069246/findmydevice/tree/master/app

4

1 に答える 1

1

正しい解決策を教えてくれた Google グループの誰かに感謝します。ここでもシェアしようと思いました。

問題は、間違ったイベント ハンドラーを使用していたことです。代わりにシステム メッセージ ハンドラを使用する必要がありました

navigator.mozSetMessageHandler('sms-received', function onSMS(sms) { 
    /* here your code */ 
}); 

マニフェストのハンドラーと組み合わせると"message": []、システム ハンドラーは、アプリがバックグラウンドで実行されている場合でも、メッセージを受信したことをアプリケーションに警告します。

于 2013-08-21T11:05:35.210 に答える