网页添加到桌面应用

本文介绍了如何在网站中利用Service Worker实现 Progressive Web App (PWA),并通过JavaScript动态添加桌面快捷方式,提升用户体验。

<!----------------------HTML开始------------------------>

<head>

<link rel="manifest" href="/static/admin/pwa/manifest.json">

</head>

<body>

    <a href="javascript:;" class="tk weChatCode add-desktop-button">

        <i class="icon-adv icon-desktop"></i>

        <p class="downa">桌面端</p>

        <div class="downbox click-desktop">

            <p class="ap">添加到桌面</p>

            <img src="/static/admin/pwa/desktop.png" style="width: 100px;height: auto" alt="" class="erwei">

        </div>

    </a>

</body>

<!----------------------HTML结束------------------------>

<!----------------------JS开始------------------------>

// 检测浏览器是否支持SW

    if(navigator.serviceWorker != null){

        navigator.serviceWorker.register('/admin.php/union/unionSys/sw')

            .then(res => {// console.log('注册成功') })

            .catch(error => { // console.log('注册失败') })

    }else{

        // console.log('不支持sw')

    }

    let deferredPrompt;

    const addBtn = document.querySelector('.add-desktop-button');

    addBtn.style.display = 'none';

    window.addEventListener('beforeinstallprompt', (e) => {

        // console.log('beforeinstallprompt')

        // Prevent Chrome 67 and earlier from automatically showing the prompt

        e.preventDefault();

        // Stash the event so it can be triggered later.

        deferredPrompt = e;

        // Update UI to notify the user they can add to home screen

        showInstallPromotion()

    });

    function showInstallPromotion(){

        addBtn.style.display = 'block';

        const clickBtn = document.querySelector('.click-desktop');

        clickBtn.addEventListener('click', (e) => {

            // hide our user interface that shows our A2HS button

            addBtn.style.display = 'none';

            // Show the prompt

            deferredPrompt.prompt();

            // Wait for the user to respond to the prompt

            deferredPrompt.userChoice.then((choiceResult) => {

                if (choiceResult.outcome === 'accepted') {

                    //安装成功

                    // console.log('User accepted the A2HS prompt');

                } else {

                    // console.log('User dismissed the A2HS prompt');

                }

                deferredPrompt = null;

            });

        });

    }

    function hideInstallPromotion(){

        layer.msg('安装成功')

    }

    window.addEventListener('appinstalled', () => {

        // Hide the app-provided install promotion

        hideInstallPromotion();

        // Clear the deferredPrompt so it can be garbage collected

        deferredPrompt = null;

        // Optionally, send analytics event to indicate successful install

        // console.log('PWA was installed');

    });

<!----------------------JS结束------------------------>

网页添加到手机桌面的方法因设备的操作系统不同而有所差异,以下是针对不同平台的实现方式: ### 1. Android 设备 在 Android 上,可以通过浏览器创建网页快捷方式到主屏幕: - 打开 **Chrome 浏览器** 或其他支持此功能的浏览器。 - 进入需要添加网页。 - 点击右上角的 **三个点菜单**,选择 **“添加到主屏幕”**(Add to Home screen)选项。 - 系统会自动创建一个网页快捷方式图标在你的桌面上[^2]。 该方法生成的是一个离线友好的快捷方式,并非原生应用,但加载速度较快且界面友好。 ### 2. iOS 设备(iPhone 和 iPad) 在 iOS 中,操作步骤如下: - 使用 **Safari 浏览器** 打开目标网页。 - 点击底部中间的 **“分享”按钮**(一个方框向上箭头)。 - 在分享菜单中选择 **“添加到主屏幕”**。 - 可以修改网页显示的名称和图标,然后点击 **“添加”** 即可完成操作。 这样添加网页会在主屏幕上显示为独立图标,类似于原生应用程序。 ### 3. 使用 PHP 创建 `.url` 文件(适用于 Web 提供下载链接) 如果希望用户通过网站一键下载并创建网页快捷方式,可以使用 PHP 动态生成 `.url` 文件。以下是一个示例代码: ```php <?php $Shortcut = "[InternetShortcut]\nURL=http://zsuisui.cn/\nIDList=\nIconFile=C:\\Windows\\system32\\SHELL32.dll\nIconIndex=160\n[{000214A0-0000-0000-C000-000000000046}]\nProp3=19,2"; header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=碎遇静安.url"); echo $Shortcut; ?> ``` 该代码生成了一个指向 `http://zsuisui.cn/` 的网页快捷方式文件,用户下载后可以直接双击安装,适用于桌面环境,不直接作用于移动端,但可用于特定需求场景下的网页推送功能设计[^3]。 ### 4. Progressive Web App (PWA) 方式(跨平台推荐) 现代网页可通过 PWA 技术让网页具备类原生应用的体验,并允许用户将其“安装”到桌面或移动设备上: - 网站需配置 `manifest.json` 文件。 - 支持 Service Worker 缓存资源,提升离线访问能力。 - 用户可在浏览器中选择 **“安装此网站”**,从而将其添加桌面。 这种方法具有更高的交互性和功能性,适合长期运营的网站。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值