我正在使用Phonegap CLI服务我的项目,而我的插件版本是:2.3.1 因此,我编写了以下代码以在设备就绪后执行:
NativeStorage.getItem("abcd",function(){
console.log("success");alert("success");
},function(){
console.log("fail");alert("failed :)");
});
当我在浏览器上对其进行测试时,它可以完美工作。但是,当我在Android手机上打开此应用程序时,NativeStorage代码根本不起作用。
我用weinre调试了我的应用程序:
我收到错误:ReferenceError:未定义NativeStorage
我还删除了插件和所有平台,然后重新安装它们;但是,我仍然遇到相同的错误。
能帮我找到问题吗?
答案 0 :(得分:0)
在调用NativeStorage插件之前,您是否正在等待设备准备就绪?
在index.js中,您应该添加类似于以下代码的设备处理内容。
if (window.cordova) {
document.addEventListener("deviceready", onDeviceReady, false);
}
注意:如果要在没有Cordova容器的浏览器中使用应用程序,则应定义一个else分支。如果不是Cordova容器,它将跳到else分支并立即执行功能。
if (window.cordova) {
document.addEventListener("deviceready", onDeviceReady, false);
} else {
onDeviceReady();
}
document.addEventListener(“ deviceready”,onDeviceReady,false)
有关addEventListener的更多信息:https://www.w3schools.com/jsref/met_document_addeventlistener.asp
在“ onDeviceReady”函数或更高版本中,您现在可以调用在config.xml中定义的插件
例如:
function onDeviceReady() {
//call your plugins
NativeStorage.getItem(<...>);
}
希望有帮助。