Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

170
Visualizações
Reemplazo de la implementación de window.localStorage para juegos instantáneos de Facebook

Estoy preparando un juego para publicar en Facebook Instant Games.

Mi juego usa Pixi.js y jQuery UI, y guarda algunas configuraciones de usuario como "tema de color" y "volumen de sonido" en window.localStorage:

captura de pantalla del juego

Sin embargo, cuando intento acceder desde mi juego instantáneo, aparece el error:

DOMException: no se pudo leer la propiedad 'localStorage' de 'Window': acceso denegado para este documento.

Supongo que la causa principal es que los juegos instantáneos de Facebook se ejecutan en un iframe.

Sin embargo, ya publiqué mi juego en la plataforma Yandex Games y allí ofrecen un reemplazo para localStorage ejecutando el siguiente código:

 ysdk.getStorage() .then(safeStorage => Object.defineProperty(window, 'localStorage', { get: () => safeStorage })) .then(() => { localStorage.setItem('key', 'safe storage is working'); console.log(localStorage.getItem('key')) });

Entonces, me pregunto si el mismo truco es posible usando FBInstant.player.setDataAsync() y FBInstant.player.getDataAsync() que se encuentran en Instant Games SDK .

Yo he tratado:

 Object.defineProperty(window, 'localStorage', { get: () => { getItem: { FBInstant.player.getDataAsync() }, setItem: { FBInstant.player.setDataAsync() } } }));

pero eso, por supuesto, no funciona ... Ni siquiera estoy seguro de cómo lidiar con las funciones asíncronas de Facebook aquí.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Tendrías que mantener la sintaxis.

 Object.defineProperty(window, 'localStorage', { getItem: key => FBInstant.player.getDataAsync(...) , setItem: (key,str) => FBInstant.player.setDataAsync(...) })

https://developers.facebook.com/docs/games/instant-games/sdk/fbinstant6.1/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda