我在做一个app要保存用户登录信息,写了下面两个方法,savePref没有异常,但是getPref总是返回null,
调试发现plus.android.invoke(setting, "getString", key);这句总是返回null。
另外:
- 直接用setting.edit(),editor.putString(),setting.getString()都会报错,提示这些方法不存在。
- getPref里面的 var str = plus.android.invoke(setting, "getString", key);这行
如果改成var str = plus.android.invoke(setting, "getString", key,"");
会报Uncaught SyntaxError: Unexpected identifier,不知道什么原因
设备信息:手机红米note,android4.4,电脑win8.1,浏览器chrome
function savePref(key, data) {
var str = JSON.stringify(data);
var Main = plus.android.runtimeMainActivity();
var Pref = plus.android.importClass("android.content.SharedPreferences");
var Editor = plus.android.importClass("android.content.SharedPreferences.Editor");
var setting = Main.getSharedPreferences(key, Main.MODE_PRIVATE | Main.MODE_APPEND)
var editor = plus.android.invoke(setting, "edit");
plus.android.invoke(editor, "putString", key, str);
plus.android.invoke(editor, "commit");
}
function getPref(key) {
var Main = plus.android.runtimeMainActivity();
var Pref = plus.android.importClass("android.content.SharedPreferences");
var p = new Pref();
var setting = Main.getSharedPreferences(key, Main.MODE_PRIVATE)
var str = plus.android.invoke(setting, "getString", key);
if (str == null || str == "") {
return null;
} else {
return JSON.parse(str);
}
}
小伙灬
有用!
2017-02-16 15:01