1. 程式人生 > >網頁中QQ線上客服進行聊天的一些坑和解決方案

網頁中QQ線上客服進行聊天的一些坑和解決方案

說明

從瀏覽器喚起QQ進行聊天,是很多公司或者企業會用到的一種客服方式,然而很多時候,一些手機端瀏覽器並不支援直接跳轉到QQ,或者不支援從App內嵌的網頁中跳轉到QQ頁面。

正文

針對跳轉喚起QQ,QQ推廣的官方網站http://shang.qq.com/v3/index....為從瀏覽器中喚起qq提供了支援,只需要掃描登入需要被喚起的QQ號,就可以生成一段程式碼如下所示:

<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=123456789&site=qq&menu=yes">
<img border
="0" src="http://wpa.qq.com/pa?p=2:123456789:52" alt="點選這裡給我發訊息" title="點選這裡給我發訊息"/>
</a>

這裡的數字“123456789”就是需要被喚起的QQ號碼。

應用這種方式,可以在大部分的瀏覽器中喚起QQ客戶端,並定位到聊天頁面,只是以下幾種情況中這種方式會失效:

  1. 蘋果手機自帶的 Safari 瀏覽器會提示是否在AppStore中開啟連結,如果選擇是就會直接跳轉到App Store 中,然後才能跳轉到QQ,但是兩次跳轉會丟失引數,導致不能開啟需要聊天的物件。

  2. 在手機端Google瀏覽器中也會存在類似於 1 中的情況

  3. 網頁內嵌到自開發的App中,需要喚起QQ時也會出現類似與 1 的情況。

由於Safari瀏覽器在蘋果手機端使用率很高,應業務需求,就不得不為它找一種另外的方式。

通過了解,發現app之間的聯絡可以通過一種叫做深度連結的技術解決,所謂的深度連結就是繞過網站的首頁直接連結道分頁的一種連結技術,具體想要了解的可以看看LinkedMe上的一片博文https://www.linkedme.cc/blog/...

深度連結中的一個解決方案就是定義一個新的URL Scheme ,這個URL Scheme可以通過特定的URI方式傳遞引數給另一個APP,從而改變App之間獨立不通訊的局面。

單獨說倒喚起QQ,或者解決Safari瀏覽器不能喚起QQ的問題,可以使用如下的URI:

mqqwpa://im/chat?chat_type=wpa&uin=123456789&version=1&src_type=web&web_src=oicqzone.com

其中數字“123456789”同樣的是需要被喚起的QQ。

<a target="_blank" href="mqqwpa://im/chat?chat_type=wpa&uin=123456789&version=1&src_type=web&web_src=oicqzone.com">
 123456789
</a>

通過多次測試,我整理出如下手機端瀏覽器喚起QQ的各種不同情況(其中no代表測試不成功,ok代表測試成功):

這裡需要提到一點,將URL Scheme 的方案用於電腦的各種瀏覽器從而去喚起QQ是不起任何效果,因為URL Scheme是專門為解決APP之間孤立的情況而提出來的,並不適用於電腦應用,但是在電腦端可以使用QQ推廣給出的的方案。

知道了如何解決App跳轉到QQ的方法,但是很多時候我們希望有一種通用的辦法可以解決上述幾種情況,保證在大多數瀏覽器(包括電腦瀏覽器)只需要一套程式碼就可以解決問題。

我個人通過判斷瀏覽器的userAgent區分手機端瀏覽器還是電腦端瀏覽器,然後為它們分別提供不同的方案:

HTML程式碼

<a href="javascript:void(0)" data-qq='qq'>111111111111</a>

JavaScript程式碼

window.onload = function () {

    var as = document.getElementsByTagName('a');

    var kefu101 = "http://wpa.qq.com/msgrd?v=3&uin=381232999&site=oicqzone.com&menu=yes";
    var kefu102 = "mqqwpa://im/chat?chat_type=wpa&uin=381232999&version=1&src_type=web&web_src=oicqzone.com";

    for (var i = 0, len = a.length; i < len; i++) {

        if (as[i].hasAttribute('data-qq')) {

            as[i].onclick = (function (i) {

                return function (e) {

                    var kefu = e.target ? e.target.getAttribute('data-qq') : e.srcElement.getAttribute('data-qq');

                    if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) || /(Android)/i.test(navigator.userAgent)) {

                        window.open(kefu102);
                    }else {
window.open(kefu101);
                    }
                }
            })(i);
        }
    }
};

這套方案中,手機端使用URL Scheme,電腦端使用QQ推廣的方案。

相關推薦

網頁QQ線上進行聊天一些解決方案

說明 從瀏覽器喚起QQ進行聊天,是很多公司或者企業會用到的一種客服方式,然而很多時候,一些手機端瀏覽器並不支援直接跳轉到QQ,或者不支援從App內嵌的網頁中跳轉到QQ頁面。 正文 針對跳轉喚起QQ,QQ推廣的官方網站http://shang.qq.com/v3/i

一分鐘讓自己的網頁接入qq線上聊天功能

第一步:登入qq推廣官網  --> http://shang.qq.com/v3/widget.html 第二步:登入之後有3種qq元件樣式可供我們選擇 選擇之後複製下面對應的程式碼到自己的專案所要使用的位置即可使用qq聊天功能了哦~~ 最後即可

網路警察QQ線上【提醒防騙】

← 伴遊 網路詐騙案報案/ 網路遊戲詐騙怎麼報案 網路詐騙報案流程/ 作者:法律諮詢R 釋出日期:2018-06-30 【公安局提醒】快速受理QQ:599555110,網上舉報熱線QQ:599555110,簡訊報警12110,(接警QQ:599555110

QQ線上程式碼(不需要加好友即可發起臨時會話)

首先介紹怎樣製作QQ線上客服程式碼: 線上狀態”是騰訊公司提供的一種快速溝通服務,該服務可以讓您在不加好友的情況下和域中的朋友發起臨時會話。這個程式碼需要登入http://wp.qq.com,進行一些的設定,然後將生成的程式碼嵌入至您網頁上對應的頁面程式碼中。   程式碼如下: <a targ

浮動QQ線上,MSN線上程式碼|QQ在…

騰訊qq互動狀態程式碼生成頁http://is.qq.com/webpresence/code.shtml 即時通訊如雅虎通,騰訊QQ,微軟MSN,AOL ICQ,goolge TALK,阿里巴巴貿易通,淘寶旺旺等大大方便了我們的溝通和工作,在web2.0的時代,在你的網站網頁上新增雅虎通,騰訊QQ,

QQ線上程式碼(絕對強制對話方塊)

騰訊現在線上狀態程式碼引用必須要登入http://wp.qq.com/才能檢視,實在不方便。不過仔細一看程式碼還是比較簡單。只加2段字串就可以了,這下就可以強制對話了!,程式碼如下:tencent://message/?Menu=yes&uin=29183067&Site=唐人&Ser

QQ線上設定-QQ開啟臨時會話教程

如果您在點選線上客服以後出現下面提示框,“您需要新增對方好友,才能傳送回話訊息。”,表示您的客服QQ沒有開啟臨時會話功能,需要開啟以後才可以正常使用線上客服。 設定方法如下: 一、在QQ設定面板裡面開啟臨時回話功能   二、在瀏覽器中開啟下邊的連結

網頁的跨域請求 同源策略、跨域解決方案

  品習知識點 簡單表述幾個概念,詳解@度娘。 1、同源策略,瀏覽器最核心的安全功能,在無授權情況下,只允許讀寫相同源的資源。其中源(Origin)指的是協議、域名、介面,同源即三者相同。 2、預檢請求,瀏覽器出於安全策略,在跨域請求資料時候預先發起請求,以知是否可跨域請求資料的請求。 關

iOS App支援IPv6-only Network解決方案

從2016年6月1號開始,蘋果強制要求上架AppStore的應用支援IPv6-only network。 本文分為兩部分:通過程式碼檢查是否相容IPv6-only網路,以及如何搭建IPv6-only網路的測試環境。旨在幫助快速檢查app是否支援IPv6-only Netw

在主頁面添加個qq實現當點擊圖片時可以與指定QQ號的人進行聊天

site 新建 ack 調用 position 默認 點擊 進行 images 首先在主頁面內容的最後面添加一個div <!--QQ客服代碼--> <style type="text/css"> .qqkef

MSN、騰訊QQ、SKYPE、阿里巴巴貿易通網頁線上

即時通訊如雅虎通,騰訊QQ,微軟MSN,AOL ICQ,goolge TALK,阿里巴巴 貿易通,淘寶旺旺等大大方便了我們的溝通和工作,在web2.0的時代,在你的網站網頁上新增雅虎通,騰訊QQ,微軟MSN,AOL ICQ,goolge TALK,阿里巴巴 貿易通,淘寶旺旺線

網頁 生成QQ線上臨時對話方塊/聊天

2)在“頁面設定”中選擇“設定部落格首頁模版”,在其中“自定義內容元件”內選擇“新增文字元件”下面是我已經設定好了的三個元件的效果圖,未設定之前這裡是空白的,您可以通過自定義元件新增文字元件任意新增自己喜歡的內容、公告資訊、個人介紹、插入圖片或其它多媒體檔案;

一款強大的網站線上聊天系統:whisper搭建教程

簡介 whisper是一個線上客服系統原始碼,採用thinkphp5+Gatewayworker編寫,效能強悍。自己搭建,控制在自己,也無需為您的資料安全擔心,您可以應用在任何的正規的網站,只需要新增一段簡單的js程式碼,就可以使您的網站擁有線上客服功能。 截圖

springboot整合websocket實現頁面線上聊天,並且解決無法注入例項的問題

本文采用現在流行的springboot框架整合websocket實現線上客服的聊天功能,程式碼實現如下:pom.xml:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.

基於Odoo框架的開源線上系統

cs_base 開源客服系統,基於 Odoo 的客服模組 cs_base 是在強大的 Odoo 框架的基礎上實現的一個線上客服應用 基礎模組包含完整的 Web 線上客服的接入,坐席管理等,通過擴充套件可方便地加入電話呼叫和微信公眾號諮詢的接入以及客服工單的管理 特性 1. 支援多渠道(微

快速溝通、準確獲-Zoomla!逐浪CMS線上功能使用全教程

面向訪客,如何第一時間有效的交流溝通? 在網頁和app上掛載電話、QQ或微信二維碼,是有效的方式,但有一部份客戶是沒有安裝QQ或微信的,比如老年客戶、外國訪客以及特定環境情景下,這時網站有一個及時的交流系統很重要。 Zoomla!逐浪CMS對此提供了一個原生的線上客服系統,此係統自Zooml

關於微信線上系統的實現(已經證實可用)

1.微信線上客服系統需要認證服務號資格,如果沒有認證是沒辦法完成 和大家分享下我實現的方式: 微信前端接入資訊到資料庫->做一個JSP 頁面定時重新整理(或者在有資料插入的時候涮新)->取使用者發來的資料 主要是openid 和內容(也支援語音和圖片)到JSP

Vue線上系統【開源專案】

1. 專案介紹 一個基於Vue2.0的線上客服系統。 技術棧包含:Vue、VueX、Vue Router、Element UI。 2. 功能介紹 專案包含了2個模組:客服端和訪客端。 2.1 客服端功能 1)文字和表情混合內容的接收和傳送。 2)圖片、檔案的接收和傳送。 執行圖

手把手教你實現微信小程式會話聊天,智慧小程式

如果你是一個經常需要接待使用者的小程式,可能已經給小程式添加了一個簡單的客服功能按鈕,讓使用者更主動和你互動! 客服人員可以直接使用微信公眾平臺網頁版客服工具進行客服訊息回覆。或者使用更智慧的第三方小程式客服,來實現更多多維度的操作! 比如多達 15 中的自動回覆,以及多

如何抓取網頁的實時監測資料進行分析

   使用wpf做了窗體,跟Silverlight開發環境一樣,將前臺設計與後臺開發邏輯分離開來,抓取南京市九個PM 2.5監測站點的資料     前臺程式碼: <Grid> <Button Content="資料獲取" Heigh