PWA系列:第一章 PWA使用场景分析

前言

2018年4月份起微软的应用商店上线第一批PWA应用以来,近一年随着safari开始支持ServiceWorkers,国内浏览器厂商也逐步开始大力加持,到本课程发稿起95%以上的浏览器都支持了PWA的横幅安装。PWA轻应用也逐渐被广大站点使用和推广。

PWA轻应用的在线或离线的环境中更好的模拟Navive App,它充分的发挥了离线缓存,Web Service,Serivce Workers、manifest等技术的综合应用。它的开发费用低,推广成本低廉、尤其版本迭代的维护更容易的特性。使得它更受开发厂商的热爱,尤其管理系统beta版,行销模型、引导APP安装等场景更有优异表现。
我们的课程从基础入手,你只要掌握基础的**ECMAScript5的基础**

课程从零开始梳理各个知识点。从服务端离线缓存实现,用户代理的脱机缓存,CacheStorage,Web Service,Service Workers,Promise、服务器客户端消息等专题,共十二章。帮助开发者从零理解PWA的应用。

优缺点

PWA 在2019年看来已经是一个不年轻的技术了,PWA全称Progressive Web App,即渐进式WEB应用。他使用户在浏览网页的同时,通过用户代理(浏览器)触发,直接在移动终端主屏生成一个应用。优点在于:

  • 开发成本低,现阶段前端打包已经完全可以实现三端统一的代码维护(android,ios,web),但还依赖在市场或store推广,通过PWA技术,可以快速在用户主屏生成应用;
  • 推广成本低廉:可以通过短信,即时聊天,广告直接安装主屏应用。粘性大;
  • 版本迭代容易维护,只要处理缓存无需依赖任何设备;
  • 通过PWA可以协助APP安装和推广;
  • 通知推送,在特定浏览器环境中模拟原生的信息推送

缺点在于:

  • 无法主动安装到用户系统主屏,根据PWA协议规范用户需要2次访问网站,并间隔大于5分钟。用户代理将提示用户是否安装到主屏。但实际应用测试中这种响应并不能统一。有些浏览器在满足PWA条件的页面可以直接呼出安装横幅,有些则无法控制呼出时间;
  • 用户使用习惯性,用户热度不够,或不习惯这种操作模式
  • iOS系统需要用户操作,并不能一键安装;
  • 更多的原生功能不能被PWA使用,虽然在2017年Google就宣布PWA将在Android上获得和原生应用一样的功能体验,但仅仅Chrome能够使用PWA的功能,其他浏览器还是望尘莫及。像sync同步功能等只有Chrome才在实现。技术开发中不得不考虑更多兼容性。
功能AndroidiOS
使用内存>50M<50M
地理位置
传感器√ 
摄像头
音频输出
语音合成
WebAssembly
WebRTCWebGL
访问蓝牙x
Web App Bannerx
推送通知x
打开其他应用x

下面是支持PWA的浏览器:

场景应用

随着手机市场用户的日益活泼,围绕着手机开发的各种APP也层出不穷,PWA是一种轻应用的形态存在。它到底更适合哪种方面的使用和推广呢:笔者也在近几年间开发和跟踪多款轻应用的发展来叙述以下几种场景:

场景一: 某大型商超管理平台在2018年要开发基于移动端的管理体系,在梳理业务流程的过程中,发现业务流程非常复杂,采购模型各地市都有差异,地堆等活动方案复杂而且变化量大,各个权限终端业务模型非常庞大。预计开发beta版的周期可能要10个月以上。初期版本迭代会成为大问题,iOS可能延后接入。将导致至少有20%的员工是无法使用管理系统。后期采用了PWA接入的方式。前端采用VUE开发,大大提高的应用速度,定型后使用WEEX生成客户端。

场景二:中小型企业的定制化管理系统。近几年随着微信企业号,钉钉等面向企业管理模型,可以提供更优秀的企业自动化解决方案。现实中很多企业还是依赖以前的非常规的管理系统。某地扎啤供应商,2006年自主开发业务管理系统。2014年建立移动端的业务管理系统。2018年采用PWA技术快速的把管理系统生成桌面应用。降低了二次开发成本,做到低投入高产出的管理型回报

场景三:某在线财经网站,用户访问WEB,通过PWA技术,快速生成选中的股票到桌面。用户可以通过主屏快速访问单只股票,处理买入,卖出。大大提高了产品粘性。

场景四:金融贷款平台,通过大数据的短信精准定位,短信内容点击后跳转浏览器。直接使用PWA技术在客户端生成主屏APP。节省APP推广费用,大大降低客户跳出率。提升了到达率。

场景五:体验性子应用,Facebook在PWA计划后,就推出了自己的PWA。后续新功能业务发展上也大大选用了PWA,从服务或社交媒体平台获得完整的体验。开始部署阶段就尝试通过PWA在用户主屏生成新的入口,慢慢把应用独立出平台。

场景六:中小型网站的独立入口,国内部分中小型网站虽然有独立的APP,但安装量和粘性都很低,采用PWA技术,利用现有流量,快速占领用户主屏。

通过以上案例不难看出PWA具有快速部署的功能。对于Native App 来说,其最大的问题是要由软件市场安装和推广,当用户通过搜索找到某个应用时,他需要下载App后才能享受内容。当再次使用内容时还是需要打开App。降低了用户热情,随着移动互联网的发展。更个性的桌面应用将成为时代主流。自定义自己的应用入口,甚至自定义自己的应用市场,和朋友一起分享应用将来到。PWA技术遵循W3C标准,完全开放。更容易被各个终端浏览器接受。打破市场枷锁。

自2015年以来,PWA 相关的技术不断升级优化,在用户体验和用户留存两方面都提供了非常好的解决方案。PWA 可以将 Web 和 App 各自的优势融合在一起:渐进式、可响应、可离线、实现类似 App 的交互、即时更新、安全、可以被搜索引擎检索、可推送、可安装、可链接。
各大浏览器厂商也开始支持PWA,随着PWA安装的放开,首次加载即可安装,国内浏览器厂商也纷纷展开全面技术覆盖。

来源: https://wosclass.com/2019/03/07/%E7%AC%AC%E4%B8%80%E7%AB%A0-pwa%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%E5%88%86%E6%9E%90/

转载于:https://my.oschina.net/u/2251679/blog/3023663

### iOS 平台上的 PWA 徽章通知实现 目前,iOS 对于渐进式 Web 应用 (PWA) 的支持相对有限,尤其是在涉及高级功能(如徽章通知)时。尽管 Android 上的 PWA 已经能够很好地支持推送通知和图标更新等功能,但在 iOS 中,Safari 浏览器并未完全开放这些 API。 #### Safari Push Notifications 和徽章的支持情况 苹果公司通过其 APNs(Apple Push Notification Service)提供原生应用程序的通知服务,但对于 PWAs 来说,Safari 不支持标准的 `PushManager` 接口以及相关的通知权限管理[^2]。因此,在当前的技术条件下,无法直接利用浏览器内的 JavaScript 或者现代 Web APIs 实现类似于 Android 的徽章通知效果。 #### 替代方案:自定义服务器端逻辑配合 Apple 提供的服务 虽然不能依赖传统的 Web 技术栈来完成此目标,但仍有一些间接方法可以尝试接近该需求: 1. **借助第三方工具和服务** 可以考虑集成某些跨平台的消息传递框架,比如 Firebase Cloud Messaging (FCM),即使它主要针对安卓设备优化,也可能找到一些变通办法适用于部分场景下的 iOS 用户群体交互体验提升[^3]。 2. **探索 URL Scheme 或 Universal Links** 创建特定链接触发机制,当用户打开关联网站时显示提示信息给访问者知道存在未读消息等内容待处理状态;不过这种方式用户体验可能不如真正的桌面快捷方式那样直观便捷[^4]。 3. **定期轮询后台数据变化并手动刷新UI界面展示新内容标记** 如果应用允许离线缓存,则可以在每次加载页面的时候检查是否有新的动态需要告知最终使用者,并据此改变视觉呈现形式让其注意到重要事件发生——但这显然增加了电量消耗同时也违背了即时通讯应有的高效原则[^5]。 以下是基于 Node.js 编写的简单示例代码片段用于演示如何监听远程数据库中的变动并向前端发送信号以便进一步操作: ```javascript const io = require('socket.io')(server); // 假设我们有一个存储所有用户的在线连接对象列表 let usersConnections = {}; function notifyUser(userId, message){ let socketId = usersConnections[userId]; if(socketId && io.sockets.connected[socketId]){ io.to(socketId).emit('new_message',message); } } db.collection('messages').watch().on('change', change => { console.log(`Change detected: ${JSON.stringify(change)}`); // 这里可以根据实际业务逻辑提取出应该被通知到的具体 user id 等参数 const userIdToNotify = extractUserIdFromChangeEvent(change); notifyUser(userIdToNotify,"You have a new message!"); }); ``` 请注意以上仅为理论探讨性质的内容概述,具体实施细节需依据项目实际情况调整完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值