您可以按照以下步骤,获取小程序栈堆和当前信息。
创建
CustomApiBridgeExtension
类继承SimpleBridgeExtension
类。代码示例如下:public class CustomApiBridgeExtension extends SimpleBridgeExtension { private static final String TAG = "CustomApiBridgeExtension"; @ActionFilter public void tinyToNative(@BindingId String id, @BindingNode(App.class) App app, @BindingNode(Page.class) Page page, @BindingApiContext ApiContext apiContext, @BindingExecutor(ExecutorType.UI) Executor executor, @BindingRequest JSONObject params, @BindingParam("param1") String param1, @BindingParam("param2") String param2, @BindingCallback BridgeCallback callback) { RVLogger.d(TAG, "id: " + id + "\napp: " + app.toString() + "\npage: " + page.toString() + "\napiContext: " + apiContext.toString() + "\nexecutor: " + executor.toString()); RVLogger.d(TAG, JSONUtils.toString(params)); JSONObject result = BridgeResponse.SUCCESS.get(); // 将结果返回给小程序 Stack stack = MriverApp.getAppStack(); Enumeration enumerationLists = stack.elements(); JSONArray jsonArray = new JSONArray(); while (enumerationLists.hasMoreElements()) { JSONObject jsonObject = new JSONObject(); MRApp o = (MRApp) enumerationLists.nextElement(); jsonObject.put("AppId", o.getAppId()); jsonObject.put("AppVersion", o.getAppVersion()); jsonArray.add(jsonObject); } String tinyappStr = jsonArray.toJSONString(); // result.put("message", "客户端接收到参数:" + param1 + ", " + param2 + "\n返回 Demo 当前包名:" + apiContext.getActivity().getPackageName()); result.put("message", tinyappStr); callback.sendJSONResponse(result); } }
在启动小程序之前进行注册。
MriverEngine.registerBridge(CustomApiBridgeExtension.class);
启动小程序。
Mriver.startApp(activity, "2021042620210426");
文档内容是否对您有帮助?