<script>
var pwa4wp_open_install = function(){
    console.log("install button show");
    jQuery('#pwainstall').css('display','block');
};
var targetElement = document.getElementById("pwainstall_button");
if(targetElement != null){
targetElement.addEventListener("click",function(){
    if(window.pwa4wp_installevent !== undefined ){
        window.pwa4wp_installevent.prompt();
        window.pwa4wp_installevent.userChoice.then(function(choiceResult){
            if(choiceResult === 'accepted'){
                // insert actions for installation accepted here
                console.log('pwa installation accepted.')
            }else{
                // insert actions for installation refused here
                console.log('pwa installation refused.')
            }
            console.log('result : ' + choiceResult );
        });
        window.pwa4wp_installevent = null;
    }else{
        console.log("install event is undefined");
    }
});
}
</script>