【发布时间】:2019-03-07 13:25:03
【问题描述】:
我只想在 background 中发生转换(ENTER & EXIT)时调用位于服务器中的 php 文件。我读 我需要创建 TransitionReceiver.java 文件来实现此目的的 cordova 地理围栏插件文档。
我读到了这个native implementation
任何帮助
我试过下面的代码:
package com.cowbell.cordova.geofence;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.os.AsyncTask;
import com.loopj.android.http.*;
import java.util.*;
public class TransitionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Logger.setLogger(new Logger(GeofencePlugin.TAG, context, false));
Logger logger = Logger.getLogger();
String error = intent.getStringExtra("error");
if (error != null) {
//handle error
logger.log(Log.DEBUG, error);
} else {
String geofencesJson = intent.getStringExtra("transitionData");
PostLocationTask task = new TransitionReceiver.PostLocationTask();
task.execute(geofencesJson);
}
}
private class PostLocationTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... geofencesJson) {
try {
AsyncHttpClient client = new AsyncHttpClient();
RequestParams data=new RequestParams();
params.put("key1","value1");
String url="someurl/xyz.php";
client.post(url,data, new AsyncHttpResponseHandler() {
public void onStart() {
super.onStart();
}
public void onSuccess(String response) {
}
public void onFailure(Throwable e, String response) {
}
});
} catch (Throwable e) {
Log.println(Log.ERROR, GeofencePlugin.TAG, "Exception posting
geofence: " + e);
}
return "Executed";
}
@Override
protected void onPostExecute(String result) {
}
}
}
谢谢
【问题讨论】:
标签: java cordova cordova-plugins android-geofence