
使用本机网桥时,应使用包中的
WritableNative组件调用回调
com.facebook.react.bridge。
而不是a
JSONObject使用
WritableNativeMap。
而不是a
JSONArray,请使用
WritableNativeArray。
例如,带有
WritableNativeMap:
@ReactMethodpublic void reactMethod(Callback onSuccess) { WritableMap resultData = new WritableNativeMap(); resultData.putString("key1", "data"); resultData.putString("key2", "data2"); onSuccessCallback(resultData);}对于您的情况,您应该具有以下内容:
public static WritableArray applist;// ...@ReactMethodpublic void show(Callback errorCallback, Callback successCallback) { try { //get a list of installed apps. PackageManager pm = getReactApplicationContext().getPackageManager(); List<ApplicationInfo> packages = pm.getInstalledApplications(0); WritableArray app_list = new WritableNativeArray(); // ... for (ApplicationInfo packageInfo : packages) { try { if (getReactApplicationContext().getPackageManager().getLaunchIntentForPackage(packageInfo.packageName) != null) { WritableMap info = new WritableNativeMap(); info.putString("name", packageInfo.loadLabel(pm).toString()); info.putString("packagename", packageInfo.packageName); // ... app_list.pushMap(info); } } catch (Exception ex) { System.err.println("Exception: " + ex.getMessage()); } } applist = app_list; successCallback.invoke(applist); } catch (Exception e) { errorCallback.invoke(e.getMessage()); }}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)