我正在开发一款需要地理围栏才能在后台运行的离子应用。我正在使用cordova-plugin-geofence插件。我知道JavaScript不会在后台运行,并且插件开发人员提供本机代码来监听地理围栏转换。
我按照说明操作,但似乎没有用。应用程序关闭时不会触发转换。
以下是我的包名:io.ionic.pla
。
我将此代码放在我的Android Manifest
中 <receiver android:name="io.ionic.pla.TransitionReceiver">
<intent-filter>
<action android:name="com.cowbell.cordova.geofence.TRANSITION" />
</intent-filter>
</receiver>
这是我的TransitionReceiver.java
package io.ionic.pla;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.cowbell.cordova.geofence.Gson;
import com.cowbell.cordova.geofence.GeoNotification;
public class TransitionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String error = intent.getStringExtra("error");
if (error != null) {
//handle error
Log.println(Log.ERROR, "YourAppTAG", error);
} else {
String geofencesJson = intent.getStringExtra("transitionData");
Log.println(Log.INFO, "xxxYourAppTAG", geofencesJson);
GeoNotification[] geoNotifications = Gson.get().fromJson(geofencesJson, GeoNotification[].class);
//handle geoNotifications objects
}
}
}
请帮帮我们,我真的需要这个工作。