我将使用代码片段描述解决方案。
首先从本机应用程序打开混合应用程序。
Intent intent = getPackageManager().getLaunchIntentForPackage(“URI Of Target Application”);
intent.putExtra("someData", someData);
startActivity(intent);
现在工作灯基于混合应用程序将启动,并从本地部分,我们将提取传递的数据,并将其存储在共享偏好:
Bundle dataBundle = getIntent().getExtras();
String someData = dataBundle.getString("someData");
sharedpreferences = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
sharedpreferences.edit().putString("someData", someData);
sharedpreferences.commit();
现在做一个插件,它可以在Web部件后调用已准备好使用。
SharedPreferences sharedpreferences = cordova.getActivity().getSharedPreferences(MyPREFERENCES,cordova.getActivity().MODE_PRIVATE);
if(sharedpreferences!=null) {
String param = sharedpreferences.getString("someData", "-1");
sharedpreferences.edit().remove("someData").commit();
callbackContext.success(param);
}
在基于Worklight的混合应用程序的Web侧调用该插件。
function onSuccessSharedData (param) {
Param is the passed parameter
}
Cordova.exec(onSuccessSharedData, onFailure, "pluginName", "action", []);
我们使用的是worklight 6.1,那么我可以应用这两种方式吗? – yogesh 2014-09-08 06:38:48
下次在提问时提及您的Worklight版本。不,你不能在6.1中使用它们,因为它们是6.2中的新特性;您可以改为查看WL.NativePage.show API。搜索IBM Worklight 6.1知识中心:http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.1.0/wl_welcome.html - 同样,升级到6.2 – 2014-09-08 06:42:26
对不起,以前没有提到工作灯版本。据我所知,WL.NativePage.show用于调用本地库。它如何帮助我实现从本地代码到混合代码的数据共享? – yogesh 2014-09-08 06:47:24