2016-03-30 16 views
9

これは本当にいいプラグイン(https://github.com/katzer/cordova-plugin-local-notifications)ですが、それを動作させるのにはいくつかの困難があります。Cordova Phonegapのローカル通知が機能しない

私はAndroidとPhonegap CLIを使用しています。私はこれらすべての組み合わせを試してみましたが、私のconfig.xmlに

<preference name="phonegap-version" value="3.5.0" />

<plugin name="de.appplant.cordova.plugin.local-notification" spec="0.8.1" source="pgb" /> 
<gap:plugin name="de.appplant.cordova.plugin.local-notification" /> 
<plugin name="de.appplant.cordova.plugin.local-notification" source="pgb" /> 

しかし、私は両方のCLI 5.0と今のPhoneGap 3.5.0を試してみましたが、これは私のconfig.xmlにあります通知は表示されません - 電話で何も起こりません - 何も、nada、zilch。私はまた、KitchenSinkアプリケーション(https://github.com/katzer/cordova-plugin-local-notifications/tree/example)をダウンロードしてビルドしPhoneGapの上に設置し、自分の携帯電話と何が再び起きています。..

これは上の私のコードであるindex.htmlをので、携帯電話の火災は、それができるだけ早くローカル通知を登録する必要があります。

cordova.plugins.notification.local.registerPermission(function (granted) { 
    // console.log('Permission has been granted: ' + granted); 
}); 

cordova.plugins.notification.local.schedule({ 
    id: 1, 
    title: 'Reminder', 
    text: 'Dont forget to pray today.', 
    every: 'minute', 
    icon: 'res://icon', 
    smallIcon: 'res://ic_popup_sync' 
}); 

私も

cordova.plugins.notification.local.schedule({ 
    id: 2, 
    text: "Good morning!", 
    firstAt: tomorrow_at_8_am, 
    every: "day" // "minute", "hour", "week", "month", "year" 
}); 

を試みたとしてもKitchenSinkアプリが動作しない - 何も電話で起こりません?

私のAndroidのバージョンがある:5.1.1

は、どのように私は地元の通知がPhoneGapの中に表示されるように得ることができますか?

+0

devicereadyイベントが解雇されたことを確認しましたか? – chadiusvt

+0

はい、これでアプリが応答します。私はPhoneGapのビルドと電話での.apkの作成の両方でconsole.logとその他のさまざまなテストを行っています - キッチンシンクアプリも動作していません – TheBlackBenzKid

+0

@TheBlackBenzKidこんにちは、私はちょうどキッチンシンクアプリを試しています。明日までにお知らせします。しかし、サンプルコードのダウンロード中に気付いたのは、プラグインのフォルダが正しく抽出されていないということです。私はプラグインの中に 'de.appplant.cordova.plugin.local-notification'フォルダを見つけることができません。私はサイズが1kbの 'de.appplant.cordova.plugin.local-notification'ファイルしか見ることができませんでした。プラグインフォルダ内のプラグインが正しくインストールされていることを確認できますか? – Gandhi

答えて

3

私はあまりにも私が持っている&作業このプラグインを取得しようと多くの時間を費やしているが、私はそれが最も気質の一つであることがわかります。あなたのhtmlタグに今

var testNotifications = function() { 

document.addEventListener("deviceready", function() { 

    console.warn("testNotifications Started"); 

    // Checks for permission 
    cordova.plugin.notification.local.hasPermission(function (granted) { 

    console.warn("Testing permission"); 

    if(granted == false) { 

     console.warn("No permission"); 
     // If app doesnt have permission request it 
     cordova.plugin.notification.local.registerPermission(function (granted) { 

     console.warn("Ask for permission"); 
     if(granted == true) { 

      console.warn("Permission accepted"); 
      // If app is given permission try again 
      testNotifications(); 

     } else { 
      alert("We need permission to show you notifications"); 
     } 

     }); 
    } else { 

     var pathArray = window.location.pathname.split("/www/"), 
      secondLevelLocation = window.location.protocol +"//"+ pathArray[0], 
      now = new Date(); 


     console.warn("sending notification"); 

     var isAndroid = false; 

     if (device.platform === "Android") { 
     isAndroid = true; 
     } 

     cordova.plugin.notification.local.schedule({ 
      id: 9, 
      title: "Test notification 9", 
      text: "This is a test notification", 
      sound: isAndroid ? "file://sounds/notification.mp3" : "file://sounds/notification.caf", 
      at: new Date(new Date().getTime() + 10) 
      // data: { secret:key } 
     }); 

    } 

    }); 

    }, false); 

}; 

- - あなたのjsの中で

<button onclick="testNotifications()">Test notification</button> 
それは もトップ先端はあなたの通知を確認することである権限を必要としていることをあなたに通知をトリガまたは警告する必要があります

プロジェクトのルートにあるフォルダにあります。アンドロイドはmp3とios cafでなければなりません

1

回答1:

バージョン3.5.0については、plugin's plugin.xmlを見てみましょう。バージョン5.0以上

のために試してみてください:のみ3.6.0よりバージョン以降をサポートしており、3.5.0

回答2を使用しているプラ​​グインを意味する22

にライン
<engine name="cordova" version=">=3.6.0" /> 

を見ますコード:index.html。完全に実行されている場合はnotification.scheduleに他のオプションがあります。 時間(at)オプション通知が提供されていないので、すぐにトリガーされます。

<html> 
<script type="text/javascript" src="cordova.js"></script> 
<script> 
document.addEventListener('deviceready', onDeviceReady.bind(this), false); 
     function onDeviceReady() {        
      cordova.plugins.notification.local.schedule({ 
       id: 1, 
       title: "Sample Notification", 
       text: "foo",      
       every: "week",           
       data: { meetingId: "123#fg8" } 
      }); 
     }; 
</script> 
<body> 
</body> 
</html> 
関連する問題