4

phonegap ベースのナビゲーション アプリの iOS バージョンに取り組んでいます。私のアプリは、GPS を使用して徒歩ルート周辺のユーザーの位置を追跡し、ユーザーが従うべき新しい指示がある場所に到達すると、音声 (navigator.notification.beep) と触覚 (navigator.notification.vibrate) フィードバックを使用してユーザーに警告します。

アプリがフォアグラウンドで実行されている場合、ビープ音と振動の両方が地理的な場所に到達すると発生しますが、電源ボタンを押して画面をオフにするか、ホームボタンを押して戻ることにより、アプリがバックグラウンドで一時停止されます踏み台に、振動のみが機能します - ビープ音は聞こえません。アプリがバックグラウンドで navigator.notification.beep() を呼び出しているが、ビープ音が鳴らないことをログ ファイルで確認できるように、デバッグを追加しました。iOS 6.3.1 を実行する iPhone 4S と iOS 5.1.1 を実行する iPad 2 でアプリをテストしました。明らかに、iPad は振動しませんが、ビープ音はアプリがフォアグラウンドにあるときは機能しますが、バックグラウンドにあるときは機能しません。

  • 私のアプリはPhonegap 2.5.0を使用しています
  • iOS 6.3.1用の最新のSDKで最新のXcode v4.6.2を使用しています
  • /www ルートでbeep.wavを使用しています
  • 私のアプリの .plist は、「場所」と「オーディオ」の「UIBackgroundModes」を設定します
  • 私のconfig.xmlには設定が含まれています:

    <プラグイン名="通知" 値="CDV通知" />

    <プラグイン名="メディア" 値="CDVSound" />

    <preference name="MediaPlaybackRequiresUserAction" value="false" />

    <preference name="AllowInlineMediaPlayback" value="true" />

これを修正する方法を提案していただければ幸いです:-)

4

1 に答える 1

2

他の誰かが興味を持っている場合、これが私がこれを解決した方法です:

Cordova 2.x で使用するLocal Notifications phonegap プラグインを更新しました。プラグインを使用して、フォアグラウンド ビープにバックグラウンド ビープと phonegap を提供するために、www/ の phonegap に同じサウンドを beep.wav として配置し、iOS プロジェクト Resources のローカル通知に beep.caf として配置しました。

function doBeep(){
  cordova.require('cordova/plugin/localnotification').add(
    function(){
      console.log("Successfully added local notification");
    },
    function(){
      console.error("Error adding local notification");
    },{
      date: new Date(new Date().getTime()),
      repeat:'',
      message: '', // No message so just beep
      hasAction: true,
      badge: 0,
      id: '1',
      background:'background',
      foreground:'running',
      sound: 'beep.caf'
    }
  );
}

function running(){
  console.log("Running in the foreground so use a phonegap notification");
  navigator.notification.beep();
}

function background(){
  console.log("Running in the background so an iOS local notification will be used");
}
于 2013-05-31T11:26:25.463 に答える