如何从android java中的cordova-plugin-nativestorage获取数据

美好的一天,我为Cordova制作原生背景mod,我需要从js到java获取数据。 我用插件cordova-plugin-nativestorage在js中保存数据,代码如下:

   Save data   function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady() { NativeStorage.setItem("somekey", "value", null, null); }      

但我的问题是:我不知道如何在没有Cordova活动的后台服务中使用java获取此数据(“值”)。

Backgroud服务java:

 package cz.oznameni; public class Backgroundoznameni extends Service { } 

我做了一个更改,所以你应该方便地访问保存的值。

请先重新安装插件:

 cordova plugin remove cordova-plugin-nativestorage cordova plugin add https://github.com/TheCocoaProject/cordova-plugin-nativestorage 

这将安装开发版。 这是因为这个更新的代码没有推送到NPM( 更新 :现在没有必要使用开发版本,NPM上的版本就好了)。

为了使用键检索值,我编写了以下方法:

 String getValue(Context context, String key, String defaultValue) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE); return settings.getString(key, defaultValue); } 

PREFS_NAME应声明如下:

 public static final String PREFS_NAME = "NativeStorage"; 

onCreate方法中,上下文应该是可访问的。

所以整体看起来应该是这样的:

  public class Backgroundoznameni extends Service { public static final String PREFS_NAME = "NativeStorage"; @Override public void onCreate() { String value = getValue(Backgroundoznameni.this, "somekey", null); } String getValue(Context context, String key, String defaultValue) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE); return settings.getString(key, defaultValue); } } 

注意:代码未经过测试!

编辑:这在Github问题中进一步记录。