2016-08-26 10 views
5

İyi günler, Cordova için yerli arka plan mod yapıyorum ve ben js java veri almak gerekir. Bu kod ile, eklenti cordova-plugin-nativestorage ile js verileri kaydetmek:Nasıl android java cordova-plugin-nativestorage veri almak

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Save data</title> 

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

    function onLoad() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 

    function onDeviceReady() { 
     NativeStorage.setItem("somekey", "value", null, null); 
    } 

    </script> 
    </head> 
    <body onload="onLoad()"> 
    </body> 
</html> 

ama benim problem: Ben Cordova etkinliği olmadan arka plan hizmetlerinde java ile bu verileri ("değer") almak için nasıl bilmiyorum.

Backgroud hizmetleri java: rahatlıkla kaydedilmiş değere erişmek gerekir böylece

package cz.oznameni; 

public class Backgroundoznameni extends Service { 

} 

cevap

2

Ben bir değişiklik yaptık.

, ilk eklentiyi yeniden yükleyin:

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

Bu dev sürümünü yükleyecektir. Bu güncellenmiş kod NPM'ye aktarılmadığı için (UPDATE: şimdi dev versiyonunu kullanmak gerekli değildir, NPM'deki versiyon gayet iyi). aşağıdaki gibi

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

PREFS_NAME beyan edilmelidir:

public static final String PREFS_NAME = "NativeStorage"; 

bağlam dahilinde this erişilebilir olması gereken bir anahtar ile değer alma için

, ben şu yöntemi yazdım onCreate yöntemi.

Yani genel olarak bu gibi görünmelidir:

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); 
     } 
    } 

NOT: Kod test edilmedi!

DÜZENLEME: Bu daha fazla this Github issue belgelenmiştir.

İlgili konular