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; ...@@ -54,6 +54,7 @@ import io.flutter.plugin.common.PluginRegistry;
public class FlutterBoostPlugin implements MethodChannel.MethodCallHandler, Application.ActivityLifecycleCallbacks { public class FlutterBoostPlugin implements MethodChannel.MethodCallHandler, Application.ActivityLifecycleCallbacks {
private static FlutterBoostPlugin sInstance = null; private static FlutterBoostPlugin sInstance = null;
private static int kRid = 0;
public static synchronized void init(IPlatform platform) { public static synchronized void init(IPlatform platform) {
if (sInstance == null) { if (sInstance == null) {
...@@ -146,47 +147,29 @@ public class FlutterBoostPlugin implements MethodChannel.MethodCallHandler, Appl ...@@ -146,47 +147,29 @@ public class FlutterBoostPlugin implements MethodChannel.MethodCallHandler, Appl
ctx = sInstance.mPlatform.getApplication(); 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.
}
@Override
public void error(String var1, String var2, Object var3) {
//Doing nothing now.
}
@Override
public void notImplemented() {
//Doing nothing now.
}
},"no use",key,resultData,params);
}
});
}
sInstance.mPlatform.startActivity(ctx, concatUrl(url, params), requestCode); sInstance.mPlatform.startActivity(ctx, concatUrl(url, params), requestCode);
}
private Boolean needResult(Map params){ onPageResult("result_id_100",new HashMap(),new HashMap());
}
if(params == null) return false; public static void openPage(Context context, String url, final Map params, int requestCode,PageResultHandler handler) {
final String key = "needResult"; if(handler != null){
if(params.containsKey(key)){ String rid = createResultId();
if(params.get(key) instanceof Boolean){ sInstance.mMediator.setHandler(rid,handler);
return (Boolean) params.get(key); params.put("result_id",rid);
}
} }
return false;
openPage(context,url,params,requestCode);
}
private static String createResultId(){
kRid += 2;
return "result_id_" + kRid;
} }
public static void onPageResult(String key , Map resultData, Map params){ public static void onPageResult(String key , Map resultData, Map params){
if (sInstance == null) { if (sInstance == null) {
......
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