Install-button verschwindet nach abbruch

This commit is contained in:
silas 2018-10-08 15:05:58 +02:00
parent e7977aa487
commit 5a131ccee3
3 changed files with 44 additions and 22 deletions

View File

@ -4606,11 +4606,26 @@ InitPromise.addPromise(function(app){
class InstallManager {
static init() {
window.addEventListener('beforeinstallprompt', e => {
this.deferredPromt = e;
e.preventDefault();
if (this.canInstallListener) {
this.canInstallListener(this.deferredPromt);
}
this.setDeferredPrompt(e);
});
}
static setDeferredPrompt(e){
this.deferredPromt = e;
if (this.canInstallListener) {
this.canInstallListener(this.deferredPromt);
}
}
static async prompt(){
if (Helper.isNotNull(this.deferredPromt)){
this.deferredPromt.prompt();
return this.deferredPromt.userChoice();
}
return Promise.resolve({
"outcome":"dismissed",
"platform":""
});
}
@ -6796,14 +6811,11 @@ class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
this.getSite().startSite(PrivacyPolicySite);
});
InstallManager.setCanInstallListener((e) => {
InstallManager.setCanInstallListener(() => {
let installButton = this.findBy("#install-button");
installButton.addEventListener("click", () => {
e.prompt();
e["userChoice"].then(res => {
if (res["outcome"] === 'accepted') {
installButton.classList.add("hidden");
}
InstallManager.prompt().then(() => {
installButton.classList.add("hidden");
});
});
installButton.classList.remove("hidden");

View File

@ -11,11 +11,26 @@ class DelayPromise extends Promise {
class InstallManager {
static init() {
window.addEventListener('beforeinstallprompt', e => {
this.deferredPromt = e;
e.preventDefault();
if (this.canInstallListener) {
this.canInstallListener(this.deferredPromt);
}
this.setDeferredPrompt(e);
});
}
static setDeferredPrompt(e){
this.deferredPromt = e;
if (this.canInstallListener) {
this.canInstallListener(this.deferredPromt);
}
}
static async prompt(){
if (Helper.isNotNull(this.deferredPromt)){
this.deferredPromt.prompt();
return this.deferredPromt.userChoice();
}
return Promise.resolve({
"outcome":"dismissed",
"platform":""
});
}

View File

@ -61,16 +61,11 @@ export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
this.getSite().startSite(PrivacyPolicySite);
});
InstallManager.setCanInstallListener((e) => {
console.log("can install!");
InstallManager.setCanInstallListener(() => {
let installButton = this.findBy("#install-button");
installButton.addEventListener("click", () => {
e.prompt();
e["userChoice"].then(res => {
console.log(res);
if (res["outcome"] === 'accepted') {
installButton.classList.add("hidden");
}
InstallManager.prompt().then(() => {
installButton.classList.add("hidden");
});
});
installButton.classList.remove("hidden");