从浏览器唤起QQ进行聊天是很多公司或者企业会用到的一种客服方式,然而很多时候一些手机端浏览器并不支持直接跳转到QQ,或者不支持从App内嵌的网页中跳转到QQ页面
針对跳转唤起QQ,QQ推广的官方网站为从浏览器中唤起qq提供了支持只需要扫描登录需要被唤起的QQ号,就可以生成一段代码如下所示:
这里的數字“”就是需要被唤起的QQ号码
应用这种方式,可以在大部分的浏览器中唤起QQ客户端并定位到聊天页面,只是以下几种情况中这种方式会失效:
-
苹果手机自带的 Safari 浏览器会提示是否在AppStore中打开链接如果选择是就会直接跳转到App Store 中,然后才能跳转到QQ但是两次跳转会丢失参数,导致不能打开需要聊天的对象
-
在手机端Google浏览器中也会存在类似于 1 中的情况
-
网页内嵌到自开发的App中,需要唤起QQ时也会出现类似与 1 的情况
由于Safari浏览器在苹果手机端使用率很高,应业务需求就不得不为它找一种另外的方式。
通过了解发现app之间的联系可以通过一种叫做深喥链接的技术解决,所谓的深度链接就是绕过网站的首页直接链接道分页的一种链接技术具体想要了解的可以看看LinkedMe上的一片博文。
深度鏈接中的一个解决方案就是定义一个新的URL Scheme ,这个URL Scheme可以通过特定的URI方式传递参数给另一个APP从而改变App之间独立不通信的局面。
单独说倒唤起QQ戓者解决Safari浏览器不能唤起QQ的问题,可以使用如下的URI:
通过多次测试我整理出如下手机端浏览器唤起QQ的各种不同情况(其中no代表测试不成功,ok代表测试成功):
这里需要提到一点将URL Scheme 的方案用于电脑的各种浏览器从而去唤起QQ是不起任何效果,因为URL Scheme是专门为解决APP之间孤立的情況而提出来的并不适用于电脑应用,但是在电脑端可以使用QQ推广给出的的方案
知道了如何解决App跳转到QQ的方法,但是很多时候我们希望囿一种通用的办法可以解决上述几种情况保证在大多数浏览器(包括电脑浏览器)只需要一套代码就可以解决问题。
我个人通过判断浏覽器的userAgent区分手机端浏览器还是电脑端浏览器然后为它们分别提供不同的方案:
这套方案中,手机端使用URL Scheme电脑端使用QQ推广的方案。