Значение переменной в строку или сохранение в VK
Доброго времени суток!
Сразу предупреждаю, что JavaScript я давно уже не открывал и глубоко в нем не копал, ООП и подобные вещи. По коду будет видно. :haha: И черт меня дернул из практики сделать игру да еще опубликовать... :blink: Суть вопроса - в игре нужно сохранить и читать очки и количество отгаданных слов в родном ВК. Меня отсылают к документации https://dev.vk.com/ru/bridge/VKWebAppStorageSet И тех поддержка говорит, что мое значение value должно быть строкой, я и в кавычках писал, и без. Смотрите, вы вызываете VKWebAppStorageSet, но передаете value: *число* и получаете ошибку «Param \"value\" should be a string». Нужно сохранять данные как строку, а не число. Пытаюсь числовое значение переменной сделать в строку и передать, но не сохраняет\читает. Полная функция сохранения
// функция повышения уровня
function funcLevelUP() {
score += 5;
numberWord += 1;
scoreID.text(score);
if (score % 25 === 0) {
funcLifeUser(lifeUserUP);
if (musicYes) {
soundLifeUP.play();
}
}
var tmpScore = String(score);
var tmpNumberWord = String(numberWord);
vkBridge.send('VKWebAppStorageSet', {
key: 'scorePlayer',
value: 'tmpScore',
}).then((data) => {
if (data.result) {
// Значение переменной задано
}
}).catch((error) => {
// Ошибка
console.log(error);
});
vkBridge.send('VKWebAppStorageSet', {
key: 'numberWordPlayer',
value: 'tmpNumberWord',
}).then((data) => {
if (data.result) {
// Значение переменной задано
}
}).catch((error) => {
// Ошибка
console.log(error);
});
}
функция чтения при старте
function funcStartGame() {
vkBridge.send('VKWebAppStorageGet', {
keys: [
'scorePlayer',
]})
.then((data) => {
if (data.keys) {
// Значения получены
score = keys['scorePlayer'];
}
})
.catch((error) => {
console.log(error);
});
vkBridge.send('VKWebAppStorageGet', {
keys: [
'numberWordPlayer'
]})
.then((data) => {
if (data.keys) {
// Значения получены
numberWord = keys['numberWordPlayer'];
}
})
.catch((error) => {
console.log(error);
});
toString() так же не помогает. Как мне передать значения корректно? Спасибо! |
Цитата:
var tmpScore = String(score); // ... value: 'tmpScore', Так пытаешься? :blink: Нужно // так value: tmpScore, // или так value: String(score), // или так value: '' + score, С numberWord нужно поступать аналогично... Цитата:
Цитата:
Т.е. он есть только у "объектов". У числа (примитива) его нет. ;) Цитата:
|
Все ровно не работает и не понятно, чтение теперь или запись.
|
Кажись, тупо чтение не работает
vkBridge.send('VKWebAppStorageGet', {
keys: [
'scorePlayer',
]})
.then((data) => {
if (data.keys) {
// Значения получены
score = keys['scorePlayer'];
}
})
.catch((error) => {
console.log(error);
console.log(123);
});
vkBridge.send('VKWebAppStorageGet', {
keys: [
'numberWordPlayer'
]})
.then((data) => {
if (data.keys) {
// Значения получены
numberWord = keys['numberWordPlayer'];
}
})
.catch((error) => {
console.log(error);
});
console.log(123); не выводится, а помощь их с кодом не поможет. Не понимаю я их библиотеку |
Цитата:
vkBridge.send('VKWebAppStorageGet', {
keys: [
'scorePlayer',
'numberWordPlayer'
]
})
.then(data => {
console.log(data)
})
.catch((error) => {
console.log(error);
});
|
Все ровно не канает, ошбики валятся.
И это только в ВК, на локальном их нет. Пойду "кошмарить" тех поддержку, что там в ВК передается и передается ли вообще. Спасибо за момощь! |
| Часовой пояс GMT +3, время: 14:38. |