You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Service Work
使用Service Work来进行充当一个服务器与浏览器之间的中间人角色,如果网站中注册了service worker那么它可以拦截当前网站所有的请求包括对不同的URL Scheme进行对应的处理,如果需要向服务器发起请求的就转给服务器,如果可以直接使用缓存的就直接返回缓存不再转给服务器。如果是自定义URL Scheme可以交给系统进行处理
前言
作为web前端开发,https://xxx 我们屡见不鲜。点击按钮打开我们APP指定页面,如果手机未装有该APP则引导用户去应用市场下载这样的功能需求又很常见,什么是URL Scheme, 它和我们http页面链接有什么区别?什么是deeplink?我们应如何通过deeplink跳转APP指定页面?
URL Scheme是什么
URL scheme是App提供给外部的可以直接操作App的规则,有很多应用都提供了URL scheme,方便在网页端打开自己的App,APP可以向手机操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用
URL Schemes由两个单词组成:
在以本地应用为主的 移动端上,我们可以像定位一个网页一样,用一种特殊的 URL 来定位一个应用甚至应用里某个具体的功能。而定位这个应用的,就是这个应用的 URL 的 Schemes 部分,也就是开头那部分。比如短信,就是 sms://。
区别:
URL Scheme拼接规则
一般来说整段的URL Scheme是这种的形式:Scheme://host:port/path?query=xxxxxxx。其中path代表了想要跳转的指定页面,而query代表了想要传递的参数,host和port可以省略,所以通常也写为Scheme://path?query=xxxx这种形式。Scheme没有明确的规范,由APP开发人员自己定义APP对应Scheme。
按照功能划分分为以下几种:
用途
应用A跳转到应用B
在应用A中访问应用B的URL Scheme,系统会打开注册过该Scheme的应用B,例如可以直接在自己APP内访问短信Scheme:sms://就可以拉起短信
Web通过指定URL Scheme打开应用
原生app注册Scheme,例如scheme://,浏览器访问该URL Scheme时,系统进行判断,如果该Scheme已注册过,并且已安装该应用则会弹窗提示是否打开该应用,点击确认则打开应用。若无安装则提示无效。(注:safari浏览器支持URL Scheme跳转,android系统部分浏览器只支持系统级应用短信、电话等跳转,不支持自己APP自定义URL Scheme跳转)
使用JS Bridge完成Web端和移动端之间的通信
Web 端通过某种方式(例如 iframe.src)发送 URL Scheme 请求,之后 Native端 拦截到请求并根据 URL Scheme(包括路径以及Scheme所带的参数)进行相关操作完成web端与native端的通信。
Service Work
使用Service Work来进行充当一个服务器与浏览器之间的中间人角色,如果网站中注册了service worker那么它可以拦截当前网站所有的请求包括对不同的URL Scheme进行对应的处理,如果需要向服务器发起请求的就转给服务器,如果可以直接使用缓存的就直接返回缓存不再转给服务器。如果是自定义URL Scheme可以交给系统进行处理
移动端如何注册URL Schemes
Android
IOS
DeepLink
Deeplink,又叫深度链接技术,是指在App/短信/广告里点击链接,能直接跳转到目标App具体位置的技术,深度链接打破了网站与App间的壁垒,成为实现网站与App相互跳转的桥梁。开发者不仅可以通过deeplink实现网站到App互相跳转,也可以实现从多个平台(QQ、微信、微博、Twitter、Facebook、短信、各大浏览器等)到App内指定页的跳转
Universal link——iOS 9以后
iOS9及以上的用户可以通过点击一个https 链接无缝的跳转到一个App应用内的指定页面,不需要让用户点击“是否打开xx”。因为少了这个提示框,所以Universal link比URL Scheme方式体验更好。并且若用户没有安装该应用,则由于是HTTP链接用户也可以直接访问对应网页的内容。并且跟URL Scheme相比,Universal Link具有唯一性。因此更推荐开发者在iOS端使用这种方式打开App。官方开发文档
App Link——Andriod M(6)以后
App Link是由安卓发布的,在Andriod M以后才能使用。用户可以点击一个H5链接时直接跳转到 App 指定页面,而不会让用户点击”是否打开xx“。并且如果用户未安装APP则会直接跳转到指定的网站而不会出现404错误。所以App Link比URL Scheme方式体验更好。并且APP Link可以链接到自己网站的HTTP链接,其他应用均无法使用该链接,保证了应用链接的唯一以及安全。官方开发文档。
第三方工具
结语
URL Schem和我们的web日常开发息息相关,了解清楚URL Scheme并且合理利用第三方工具生成deeplink不仅可以实现场景快速还原,缩短用户使用路径,更重要的是能够用于App拉新推广场景,降低我们APP用户流失率。
The text was updated successfully, but these errors were encountered: