doric plugin
This commit is contained in:
		| @@ -20,7 +20,7 @@ public class DoricContext { | ||||
|  | ||||
|     public static DoricContext createContext(String script, String alias) { | ||||
|         String contextId = String.valueOf(sCounter.incrementAndGet()); | ||||
|         DoricDriver.getInstance().createPage(contextId, script, alias); | ||||
|         DoricDriver.getInstance().createContext(contextId, script, alias); | ||||
|         return new DoricContext(contextId); | ||||
|     } | ||||
|  | ||||
| @@ -29,6 +29,6 @@ public class DoricContext { | ||||
|     } | ||||
|  | ||||
|     public void teardown() { | ||||
|         DoricDriver.getInstance().destoryContext(mContextId); | ||||
|         DoricDriver.getInstance().destroyContext(mContextId); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -28,11 +28,11 @@ public class DoricDriver { | ||||
|         return Inner.sInstance; | ||||
|     } | ||||
|  | ||||
|     public void createPage(final String contextId, final String script, final String source) { | ||||
|     public void createContext(final String contextId, final String script, final String source) { | ||||
|         doricJSEngine.prepareContext(contextId, script, source); | ||||
|     } | ||||
|  | ||||
|     public void destoryContext(String contextId) { | ||||
|     public void destroyContext(String contextId) { | ||||
|         doricJSEngine.destroyContext(contextId); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -7,12 +7,14 @@ import com.github.pengfeizhou.doric.DoricContext; | ||||
|  * @Author: pengfei.zhou | ||||
|  * @CreateDate: 2019-07-18 | ||||
|  */ | ||||
| public abstract class BaseModule { | ||||
| public abstract class DoricNativePlugin { | ||||
|     private final DoricContext doricContext; | ||||
| 
 | ||||
|     protected BaseModule(DoricContext doricContext) { | ||||
|     protected DoricNativePlugin(DoricContext doricContext) { | ||||
|         this.doricContext = doricContext; | ||||
|     } | ||||
| 
 | ||||
|     public abstract String moduleName(); | ||||
|     public DoricContext getDoricContext() { | ||||
|         return doricContext; | ||||
|     } | ||||
| } | ||||
| @@ -1,6 +1,7 @@ | ||||
| package com.github.pengfeizhou.doric.bridge; | ||||
| 
 | ||||
| import com.github.pengfeizhou.doric.DoricContext; | ||||
| import com.github.pengfeizhou.doric.extension.DoricComponent; | ||||
| import com.github.pengfeizhou.doric.extension.DoricMethod; | ||||
| 
 | ||||
| /** | ||||
| @@ -8,19 +9,15 @@ import com.github.pengfeizhou.doric.extension.DoricMethod; | ||||
|  * @Author: pengfei.zhou | ||||
|  * @CreateDate: 2019-07-18 | ||||
|  */ | ||||
| public class ModalModule extends BaseModule { | ||||
| @DoricComponent(name = "modal") | ||||
| public class ModalPlugin extends DoricNativePlugin { | ||||
| 
 | ||||
|     protected ModalModule(DoricContext doricContext) { | ||||
|     protected ModalPlugin(DoricContext doricContext) { | ||||
|         super(doricContext); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String moduleName() { | ||||
|         return "modal"; | ||||
|     } | ||||
| 
 | ||||
|     @DoricMethod(name = "toast") | ||||
|     public void toast() { | ||||
| 
 | ||||
|          | ||||
|     } | ||||
| } | ||||
| @@ -17,8 +17,6 @@ import com.github.pengfeizhou.jscore.JSDecoder; | ||||
| import com.github.pengfeizhou.jscore.JavaFunction; | ||||
| import com.github.pengfeizhou.jscore.JavaValue; | ||||
|  | ||||
| import org.json.JSONObject; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
|  | ||||
| /** | ||||
| @@ -214,25 +212,7 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time | ||||
|             public void run() { | ||||
|                 ArrayList<JavaValue> values = new ArrayList<>(); | ||||
|                 for (Object arg : args) { | ||||
|                     if (arg == null) { | ||||
|                         values.add(new JavaValue()); | ||||
|                     } else if (arg instanceof JSONObject) { | ||||
|                         values.add(new JavaValue((JSONObject) arg)); | ||||
|                     } else if (arg instanceof String) { | ||||
|                         values.add(new JavaValue((String) arg)); | ||||
|                     } else if (arg instanceof Integer) { | ||||
|                         values.add(new JavaValue((Integer) arg)); | ||||
|                     } else if (arg instanceof Long) { | ||||
|                         values.add(new JavaValue((Long) arg)); | ||||
|                     } else if (arg instanceof Double) { | ||||
|                         values.add(new JavaValue((Double) arg)); | ||||
|                     } else if (arg instanceof Boolean) { | ||||
|                         values.add(new JavaValue((Boolean) arg)); | ||||
|                     } else if (arg instanceof JavaValue) { | ||||
|                         values.add((JavaValue) arg); | ||||
|                     } else { | ||||
|                         values.add(new JavaValue(String.valueOf(arg))); | ||||
|                     } | ||||
|                     values.add(DoricUtils.toJavaValue(arg)); | ||||
|                 } | ||||
|                 settableFuture.set(mDoricJSE.invokeMethod(DoricConstant.GLOBAL_DORIC, method, | ||||
|                         values.toArray(new JavaValue[values.size()]), true)); | ||||
|   | ||||
| @@ -14,6 +14,6 @@ import java.lang.annotation.Target; | ||||
| @Documented | ||||
| @Target(ElementType.TYPE) | ||||
| @Retention(RetentionPolicy.RUNTIME) | ||||
| public @interface DoricModule { | ||||
| public @interface DoricComponent { | ||||
|     String name() default ""; | ||||
| } | ||||
| @@ -3,6 +3,9 @@ package com.github.pengfeizhou.doric.utils; | ||||
| import android.content.res.AssetManager; | ||||
|  | ||||
| import com.github.pengfeizhou.doric.Doric; | ||||
| import com.github.pengfeizhou.jscore.JavaValue; | ||||
|  | ||||
| import org.json.JSONObject; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| @@ -35,4 +38,26 @@ public class DoricUtils { | ||||
|         } | ||||
|         return ""; | ||||
|     } | ||||
|  | ||||
|     public static JavaValue toJavaValue(Object arg) { | ||||
|         if (arg == null) { | ||||
|             return new JavaValue(); | ||||
|         } else if (arg instanceof JSONObject) { | ||||
|             return new JavaValue((JSONObject) arg); | ||||
|         } else if (arg instanceof String) { | ||||
|             return new JavaValue((String) arg); | ||||
|         } else if (arg instanceof Integer) { | ||||
|             return new JavaValue((Integer) arg); | ||||
|         } else if (arg instanceof Long) { | ||||
|             return new JavaValue((Long) arg); | ||||
|         } else if (arg instanceof Double) { | ||||
|             return new JavaValue((Double) arg); | ||||
|         } else if (arg instanceof Boolean) { | ||||
|             return new JavaValue((Boolean) arg); | ||||
|         } else if (arg instanceof JavaValue) { | ||||
|             return (JavaValue) arg; | ||||
|         } else { | ||||
|             return new JavaValue(String.valueOf(arg)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user