我將使用代碼片段描述解決方案。
首先從本機應用程序打開混合應用程序。
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