Commit be587178 authored by Jidong Chen's avatar Jidong Chen

Handle android page result

parent e0ce5307
......@@ -54,6 +54,7 @@ import io.flutter.plugin.common.PluginRegistry;
public class FlutterBoostPlugin implements MethodChannel.MethodCallHandler, Application.ActivityLifecycleCallbacks {
private static FlutterBoostPlugin sInstance = null;
private static int kRid = 0;
public static synchronized void init(IPlatform platform) {
if (sInstance == null) {
......@@ -146,46 +147,28 @@ public class FlutterBoostPlugin implements MethodChannel.MethodCallHandler, Appl
ctx = sInstance.mPlatform.getApplication();
}
//Handling page result.
if (sInstance.needResult(params)){
sInstance.mMediator.setHandler(url, new PageResultHandler() {
@Override
public void onResult(String key, Map resultData) {
NavigationService.onNativePageResult(new MessageResult<Boolean>() {
@Override
public void success(Boolean var1) {
//Doing nothing now.
}
sInstance.mPlatform.startActivity(ctx, concatUrl(url, params), requestCode);
@Override
public void error(String var1, String var2, Object var3) {
//Doing nothing now.
onPageResult("result_id_100",new HashMap(),new HashMap());
}
@Override
public void notImplemented() {
//Doing nothing now.
}
},"no use",key,resultData,params);
}
});
public static void openPage(Context context, String url, final Map params, int requestCode,PageResultHandler handler) {
if(handler != null){
String rid = createResultId();
sInstance.mMediator.setHandler(rid,handler);
params.put("result_id",rid);
}
sInstance.mPlatform.startActivity(ctx, concatUrl(url, params), requestCode);
openPage(context,url,params,requestCode);
}
private Boolean needResult(Map params){
private static String createResultId(){
kRid += 2;
return "result_id_" + kRid;
}
if(params == null) return false;
final String key = "needResult";
if(params.containsKey(key)){
if(params.get(key) instanceof Boolean){
return (Boolean) params.get(key);
}
}
return false;
}
public static void onPageResult(String key , Map resultData, Map params){
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment