2016-09-02 49 views
0

根據developers.google.com可以推遲Web應用安裝橫幅,但我只能完全取消它。推遲網頁安裝橫幅

window.addEventListener('beforeinstallprompt', function(e) { 
    console.log('beforeinstallprompt Event fired'); 
    e.preventDefault(); 
    return false; 
}); 

一個用例是,直到後來在頁面生命週期推遲的提示,例如用戶已執行的操作剛過,或打在頁面的底部(的東西,以表明他們正在與從事您現場)。

如何推遲網絡應用橫幅?

回答

2

嘗試檢查這個documentation,如果它可以幫助你。

這是用於推遲提示的完整代碼。

var deferredPrompt; 

window.addEventListener('beforeinstallprompt', function(e) { 
    console.log('beforeinstallprompt Event fired'); 
    e.preventDefault(); 

    // Stash the event so it can be triggered later. 
    deferredPrompt = e; 

    return false; 
}); 

btnSave.addEventListener('click', function() { 
    if(deferredPrompt !== undefined) { 
    // The user has had a postive interaction with our app and Chrome 
    // has tried to prompt previously, so let's show the prompt. 
    deferredPrompt.prompt(); 

    // Follow what the user has done with the prompt. 
    deferredPrompt.userChoice.then(function(choiceResult) { 

     console.log(choiceResult.outcome); 

     if(choiceResult.outcome == 'dismissed') { 
     console.log('User cancelled home screen install'); 
     } 
     else { 
     console.log('User added to home screen'); 
     } 

     // We no longer need the prompt. Clear it up. 
     deferredPrompt = null; 
    }); 
    } 
}); 

欲瞭解更多信息,也檢查這link

+1

有趣的是,當'deferredPrompt == undefined'時應該怎麼做...... – 4esn0k

+0

是的,當用戶點擊自定義按鈕時,它應該是'if(deferredPrompt)',因爲該值變爲'null' –