0

私は、Android と iPhone で動作するワークライト (現在は mobileFirst) アプリの開発に取り組んでいます。問題の 1 つは、ローカルのプッシュ通知でユーザーに通知するために、いくつかの時点でユーザーを見つける必要があることです。アプリがフォアグラウンドにある間はすべて正常に動作しているようですが、バックグラウンドでも動作する必要があります。

とりわけ次のリンクを確認しましたが、まだ何も機能しません。

それが役立つ場合、これは私のコードです:

function getFirstPositionAndTrack() {
        // use GPS to get the user's location
        var geoPolicy = WL.Device.Geo.Profiles.LiveTracking();
        geoPolicy.timeout = 60000; // set timeout to 1 minute
        geoPolicy.maximumAge = 10000; // allow to use a position that is 10 seconds old

        // note: to see at high-accuracy, change RoughTracking above to LiveTracking

        // get the user's current position
        WL.Device.Geo.acquirePosition(
                                      function(pos) {
                                      // when we receive the position, we display it and start on-going acquisition


                                      WL.Logger.debug("acquired position");
                                      WL.Logger.debug("Longitude: " + pos.coords.longitude);
                                      WL.Logger.debug("Latitude: " + pos.coords.latitude);

                                      var triggers = new Object();
                                      triggers.Geo = {};

                                      var trigger_events = generateTrigger();
                                      triggers.Geo = trigger_events;


                                      WL.Device.startAcquisition({ Geo: geoPolicy }, triggers, { Geo: alertOnGeoAcquisitionErr } );



                                      },
                                      function(geoErr) {
                                      alertOnGeoAcquisitionErr(geoErr);
                                      },
                                      geoPolicy
                                      );
        }


        //Method that create triggers dinamically

        function generateTrigger() {



        var trigger_events = new Object();

        angular.forEach(json.locations, function(location) {
                        var trigger = {
                        type: "DwellInside",
                        circle: {
                        longitude: location.longitude,
                        latitude: location.latitude,
                        radius: 100
                        },
                        dwellingTime: 3000,
                        callback: function() {
                        //                WL.Logger.info("Enter branch");
                        //                WL.Client.transmitEvent({ branch: "enter branch"}, true);

                        console.log("Location: "+JSON.stringify(location));
                        alert("We are in: "+location.name);
                        }
                        };
                        trigger_events["dwellArea_"+location.name] = trigger;
                        });

        return trigger_events;
        }

私は実際に iOS で試していますが、info.plist ファイルは次のようになります。

ここに画像の説明を入力

バックグラウンドでは何も得られませんが、フォアグラウンドに戻ると、一度にすべてを取得しているように見えます。つまり、実際に何かを行っているように見えますが、フォアグラウンドに戻るまで通知されません...バックグラウンドでワークライト プロセスをアクティブにしておく方法はありますか?

事前に感謝します。

4

1 に答える 1

0

私が質問を正しく理解していれば、あなたは「ローカル通知」を行おうとしていますが、提供されたコードのどこにそれをどのように行おうとしているのかを示していませんか?

とにかく、ローカル通知は Cordova プラグインを介してのみ可能です。ここを参照してください:

于 2015-12-11T13:53:50.247 に答える