android:navigator plugin push support singlePage flag and the default value is false

This commit is contained in:
pengfei.zhou
2020-09-01 17:41:14 +08:00
committed by osborn
parent 4e724ba922
commit e4351e3b00
4 changed files with 21 additions and 4 deletions

View File

@@ -25,6 +25,7 @@ import com.github.pengfeizhou.jscore.JSValue;
import com.github.pengfeizhou.jscore.JavaValue;
import pub.doric.Doric;
import pub.doric.DoricActivity;
import pub.doric.DoricContext;
import pub.doric.extension.bridge.DoricMethod;
import pub.doric.extension.bridge.DoricPlugin;
@@ -53,6 +54,7 @@ public class NavigatorPlugin extends DoricJavaPlugin {
String alias = source;
String extra = "";
JSValue config = jsObject.getProperty("config");
boolean singlePage = false;
if (config.isObject()) {
JSValue aliasJS = config.asObject().getProperty("alias");
if (aliasJS.isString()) {
@@ -62,11 +64,23 @@ public class NavigatorPlugin extends DoricJavaPlugin {
if (extraJS.isString()) {
extra = extraJS.asString().value();
}
JSValue singlePageJS = config.asObject().getProperty("singlePage");
if (singlePageJS.isBoolean()) {
singlePage = singlePageJS.asBoolean().value();
}
}
if (singlePage) {
navigator.push(jsObject.getProperty("source").asString().value(),
alias,
extra
);
} else {
Intent intent = new Intent(getDoricContext().getContext(), DoricActivity.class);
intent.putExtra("source", source);
intent.putExtra("alias", alias);
intent.putExtra("extra", extra);
getDoricContext().getContext().startActivity(intent);
}
navigator.push(jsObject.getProperty("source").asString().value(),
alias,
extra
);
promise.resolve();
} catch (ArchiveException e) {
e.printStackTrace();