Sie können etwas tun:
In Ihrer Klasse Handler Sie einen Konstruktor und eine Init-Methode kannst bei diesem Kontext zu bekommen, um den Anwendungskontext des ReactNatives.
private static Handler handler;
public Handler(Context context) {
SharedPreferences sharedpreferences = context.getSharedPreferences(SHARED_NAME, Context.MODE_PRIVATE);
}
public static void init(Context context) {
handler = new Handler(context);
}
//Getting keys to the React native
public Map<String, ?> getAllSharedData(){
return sharedpreferences.getAll();
}
In Ihrer Klasse, die Daten bereitstellt (provideData) Sie können
public static String[] getAllKeys() {
Map<String, ?> keyValues = Handler.getInstance().getAllSharedData();
List<String> keys = new ArrayList<>(keyValues.keySet());
String[] results = new String[keys.size()];
for (int i = 0; i < keys.size(); i++) {
results[i] = keys.get(i);
}
return results;
}
etwas tun, und schließlich Ihre Schlüssel in der RNSharedPreference bekommen (getReactApplicationContext())
@ReactMethod
public void getAllKeys(Callback successCallback){
Handler.init(getReactApplicationContext());
String[] keys = ProvideData.getAllKeys();
WritableNativeArray data = new WritableNativeArray();
for(int i=0; i<keys.length; i++){
data.pushString(keys[i]);
}
successCallback.invoke(data);
}
Haben Sie haben var SharedPreferences = require ('react-native-shared-preferences') importiert; – Mandy8055
@ Mandy8055 Was bedeutet es? –
Ignorieren Sie, dass ich einen anderen Weg gefunden habe, um es leicht verständlich zu machen. – Mandy8055