5

안녕하세요, 저는 코르도바의 네이티브 백그라운드 모드를 만들고 자바에서 js로 데이터를 가져와야합니다. 는이 코드와 플러그인 cordova-plugin-nativestorage와의 js에서 데이터를 저장 :안드로이드 자바에서 cordova-plugin-nativestorage의 데이터를 얻는 방법

<!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> 

하지만 내 문제가 : 나는 코르도바 활동없이 백그라운드 서비스에서 자바와이 데이터 ("값")를 취득하는 방법을 모르겠어요.

배경에서 서비스 자바 : 당신이 편리하게 저장된 값에 액세스해야하므로

package cz.oznameni; 

public class Backgroundoznameni extends Service { 

} 

답변

2

나는 변화를했습니다.

먼저 플러그인을 다시 설치하십시오 :

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

이 dev에 버전을 설치됩니다. 이것은이 업데이트 된 코드가 NPM (업데이트 : 이제 dev 버전을 사용할 필요가 없기 때문에 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"; 

컨텍스트가 내 this으로 접근 할 수 있어야 키로 값을 검색하기위한

, 나는 다음과 같은 방법을 작성했습니다 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); 
     } 
    } 

참고 : 코드 테스트하지!

편집 : 더 자세히는 this Github issue에 설명되어 있습니다.