javascript - Cordova Native Storage Plugin 在应用程序 iOS 中未定义
问题描述
我已将最新版本的 Cordova Native Storage 插件 ( https://github.com/TheCocoaProject/cordova-plugin-nativestorage ) 安装到我的 Cordova / Nuxt JS 项目中。当我单击一个按钮时,我试图存储一些数据,并在单击另一个按钮时提醒数据:
<template>
<div class="fill-height has-safe-area-top">
<v-container>
<v-layout row pb-2>
<v-flex>
<h1>Native storage test</h1>
<v-btn @click="storeData">Store</v-btn>
<v-btn @click="getData">Get</v-btn>
</v-flex>
</v-layout>
</v-container>
</div>
</template>
<script>
export default {
methods: {
storeData() {
NativeStorage.initWithSuiteName("suitename");
NativeStorage.setItem("reference_to_value", "my value");
},
getData() {
alert(NativeStorage.getItem("reference_to_value"))
}
}
}
</script>
当在 Xcode 10 中编译的物理设备上进行测试时,这似乎又回来undefined
了。alert()
解决方案
正如我们在文档中看到的,setItem 方法有一个成功和错误回调函数,因此我推断该函数是异步的。
NativeStorage.setItem("reference_to_value",<value>, <success-callback>, <error-callback>);
我认为您在第二个按钮上按得太快了,而第一种方法尚未完成将其变量写入手机的本机存储
尝试这样的事情:
storeData() {
NativeStorage.initWithSuiteName("suitename");
NativeStorage.setItem("reference_to_value", "my value", () => {
alert("SUCCESS");
}, () => {
alert("ERROR");
});
},
在警报未显示时不要触摸任何东西
getItem 也是什么都不返回的“回调”方法。你应该像这样处理这个函数的回调:
getData() {
NativeStorage.getItem("reference_to_value", (value) => {
alert(value);
}, () => {
alert("ERROR");
});
}
推荐阅读
- c# - 如何将带有动态查询参数的 PowerBI 报告 url 加载到 mvc 网站中
- c# - 在没有存储过程的情况下从 C# Visual Studio 执行 Alter Tablespace 语句
- git - 在 Windows 上使用 SSH 私钥进行 Git 推送
- python - what's the necessity of "else" in Python exception handling?
- apache-spark-sql - 在 Spark 中创建数据框时遇到问题
- ionic-framework - cordova-plugin-antplus 不适用于 ionic 3
- c# - 是否可以在 .NET 中开发大型应用程序(企业级)?
- jquery - 使用jquery隐藏首页上的导航栏
- asp.net - Get IP v4 of client client machine asp.net
- python - form bug when switching frames