mirror of
https://github.com/GamingShitposting/SalaMuseoGames
synced 2025-06-05 21:59:30 +02:00
57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
(function(){
|
|
|
|
var Prefs = SalaMuseoGames.Prefs;
|
|
var Software = SalaMuseoGames.page.software_data;
|
|
var Screen = (Software && Software.screen);
|
|
var Site = SalaMuseoGames.site;
|
|
|
|
if (Prefs.pwaManifests.value) {
|
|
var manifestData;
|
|
if (Prefs.softwarePwaManifests.value && Software) {
|
|
// specific manifests on games pages
|
|
manifestData = {
|
|
name: document.querySelector('.post-title').textContent,
|
|
description: document.querySelector('.post-subtitle').textContent,
|
|
start_url: (location.href + ''), // TODO Url parameters to make the game open fullscreen and automatically start
|
|
display: ((Screen && Screen.display) || "standalone"),
|
|
orientation: ((Screen && Screen.orientation) || "any"),
|
|
};
|
|
} else {
|
|
// site manifest on global pages
|
|
var ldData;
|
|
for (var elem of document.querySelectorAll('script[type="application/ld+json"]')) {
|
|
// extract site data from JSON-LD data blocks
|
|
var data = JSON.parse(elem.innerHTML);
|
|
if (data['@type'] === 'Organization') {
|
|
ldData = data;
|
|
break;
|
|
};
|
|
}
|
|
manifestData = {
|
|
name: ldData.name,
|
|
description: ldData.description,
|
|
start_url: (Site.url + Site.baseurl),
|
|
display: "standalone",
|
|
};
|
|
}
|
|
manifestData = Object.assign(manifestData, {
|
|
scope: location.href,
|
|
background_color: (Software && Software.background_color || getComputedStyle(document.body).backgroundColor),
|
|
icons: [{
|
|
src: (SalaMuseoGames.page.icon || (Site.url + Site.baseurl + '/assets/img/icons/mediumtile.png')),
|
|
sizes: "any",
|
|
purpose: "any",
|
|
}],
|
|
});
|
|
var manifestElem = document.createElement('link');
|
|
manifestElem.rel = 'manifest';
|
|
manifestElem.href = ('data:application/manifest+json;utf8,' + encodeURIComponent(JSON.stringify(manifestData)));
|
|
document.head.appendChild(manifestElem);
|
|
}
|
|
|
|
if (Prefs.offlineCache.value) {
|
|
navigator.serviceWorker.register('/SalaMuseoGames-ServiceWorker.js');
|
|
}
|
|
|
|
})();
|