Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Значение переменной в строку или сохранение в VK (https://javascript.ru/forum/misc/86962-znachenie-peremennojj-v-stroku-ili-sokhranenie-v-vk.html)

dandiablo 22.04.2026 11:27

Значение переменной в строку или сохранение в 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() так же не помогает. Как мне передать значения корректно? Спасибо!


Часовой пояс GMT +3, время: 13:58.