精华内容
下载资源
问答
  • h5调用qq客户端

    2018-03-16 16:58:00
    这是第一种: <a href="tencent://message/?...Site=在线QQ&Menu=yes"> <img border="0" src="http://wpa.qq.com/pa?p=2:351218741:41" ></a> http://wpa.qq.com/msgrd?v...

    这是第一种:

     <a href="tencent://message/?uin=1014167202&Site=在线QQ&Menu=yes"> <img border="0" src="http://wpa.qq.com/pa?p=2:351218741:41"  ></a>  
    http://wpa.qq.com/msgrd?v=3&uin=1014167202&site=qq&menu=yes

     

    转载于:https://www.cnblogs.com/love314159/p/8583385.html

    展开全文
  • 网页调用QQ客户端

    2020-12-07 19:15:11
    只需把超链改成如下即可实现在网页调起QQ客户端 tencent://message/?Menu=yes&uin=你的QQ帐号

    通过URL在线唤起QQ客户端对话:
    tencent://message/?Menu=yes&uin={你的QQ帐号}

    展开全文
  • 一,申请客服QQ 1.打开QQ推广网址 链接: https://shang.qq.com/v3/widget.html. 2.点击推广工具,免费申请 3.复制代码 二,判断手机是Android或iOS 点击按钮时加入下面代码,根据不同型号打开不同地址 内联代码片。...
  • 本文档主要介绍H5页面如何解析客户端传来的用户登录信息。以及如何根据解析后的用户登录信息来要求用户登录或者绑定手机号码的操作。 客户端传递用户信息方式 客户端目前会在打开第三方页面的时候,在url地址...

    原网址:http://open.12580.com/goMenuUrl.chtml?a=5644 

    借鉴学习下:(以下是正文)

    文档说明

    本文档主要介绍H5页面如何解析客户端传来的用户登录信息。以及如何根据解析后的用户登录信息来要求用户登录或者绑定手机号码的操作。

    客户端传递用户信息方式

    客户端目前会在打开第三方页面的时候,在url地址里面拼接上toekn字符串:

    http://m.12580.com/wap5/indexr.do?v=12580client&url=live!l.do&cityid=320500&lon=&lat=&token=A5899B55B7E013640A18F91919FB876F64222CC613FB70C10A18F91919FB876F064DF4EC0
    34CF1FA

    token的值由tokenString+“”+”imei”+”imsi”组成字符串,des加密构成。密钥是guaguaka


    如:原字符串“1451889165036.10167.11337,000000000000000,310260000000000”====》

    加密后:

    923E47B72E0EB77FA3A53E4961E665994B9BB289E1938F65EFA896F0166415090A18F91919FB876F64222CC613FB70C10A18F91919FB876F0
    64DF4EC034CF1FA

    用户信息解析

    接入方,从url地址拿到数据后,解密后得到token对应的值



    1.如果token值为空或者为0。则用户肯定没有登陆。此时调用客户端的登陆(发送伪协议27)

    2.token不为空也不为0去调用接口解析token   

    解析接口地址:

    http://hi.12580.com:8080/client_new/v1/user/getUserByToken

    此处需要在Http的请求头里面加入3个参数

    请求头参数列表

    参数

    类型

    是否必须

    示例值

    备注

    clientName

    String

    THIRD_PARTY

    用于区分渠道。

    version

    String

    yoger

    固定值,用于区分接入方。由宽连侧分配。必传

    kw

    String

    20150924095353#d5b2fbcb3e4d45c4c99ffc3df3d4f65f

    用于加密。必传


    注:kw的获取

    public staticString getVerifyString() {

                      String ctime =CTime.getTime(14);

                      return ctime

                                       +"#"

                                       +getMD5(Constants.STORE_FLAG + ctime.substring(0, 8)

                                                         +Constants.STORE_VERSION + ctime.substring(8, 14));

             }

    cTime就是当前的时间,yyyymmddhhmmss如20160104164823

    STORE_FLAG ="12580777";

    STORE_VERSION ="1.0";

    md5加密。拼接成字符串。

    这个字符串作为kw的值

    body传参列表


    参数

    类型

    是否必须

    示例值

    备注

    token

    String

    1442988958938.18703.10769

    客户端传递过
    来的toen值


    请求报文示例:

    {"token":"1442988958938.18703.10769"}

    需要对body进行加密传输

    1.加密方法:

    jsonStr = {"token":"1442988958938.18703.10769"}

    Hex.encodeHexString(Base64.encode(jsonStr))

    即先用base64,再用hex,解码相反。


    服务器返回的数据也是加密数据,需要解密解码之后才可看到

    String result = new String(Base64.decode(Hex.decodeHex(baos.toString().toCharArray())))

    返回的报文示例

    ①已登录且有手机号:

    {"ALLOW_COIN":true,"AREA_CODE":"320500","BOSS_SET":"钻石用户","EMAIL":"469490335@qq.com","FUSION_FLAG":"0","GRADE_NAME":"LV2","GRICE":"195","IS_MALL_VIP":false,"MALL_U_ID":"151495211",
    "OPERATOR_CODE":"JSYD","REG_TIME":"20140129092126","SCORE":"195","SID":"949BDF7731BDC5A0224553A61A50128B","TERMINAL_ID"
    :"13776063474"
    ,"USER_ID":"051231512141","USER_LEVEL":"360001","USER_NAME":"ssssssssssss","USER_PHOTO"
    :"http://mall.12580life.com/userphoto/151495211/zBzb/20150601111043_zBzb.jpg","U_ID":"10099441","flag":"00-00","isLogin":
    true
    ,"msg":"操作成功"}

    判断方式mallUId和TERMINAL_ID都不为空

     

    ②已登录且是互联网账号没有绑定手机号:

    {"ALLOW_COIN":true,"AREA_CODE":"320100","EMAIL":"ymm5@163.com","FUSION_FLAG":"0","IS_MALL_VIP":false,"MALL_U_ID":"174873271"
    ,"REG_TIME":"20150629104551","SID":"8CA1B34D96172E873256CACF5ACB90F1","U_ID":"19264333","flag":"00-00","isLogin":true,
    "msg":"操作成功"}

    判断方式mallUId不为空但TERMINAL_ID为空

     

    ③token失效:

    {"ALLOW_COIN":true,"IS_MALL_VIP":false,"flag":"10-07","isLogin":false,"msg":"token无效"}
    判断方式mallUId和TERMINAL_ID都为空

    H5页面的处理

    H5页面需要提供javascript:ios_page_loadtokenString
    这个js方法。客户端在登陆成功之后,会把toke加密:
     
    DesUtils desUtils = new DesUtils( "guaguaka" );
    String tokenString = desUtils.encrypt(TOKEN + "," + IMEI + "," + IMSI);
     

    通过ios_page_load这个js方法把用户的信息传递给H5页面。

    展开全文
  • 手机浏览器调用手机qq客户端的js

    千次阅读 2016-06-15 09:15:20
    在做web开时发,我们经常会遇到在线QQ客户这种梗,如果在pc端上的话直接调用连接即可,像这样: onclick="javascript:window.open('http://b.qq.com/webc.htm?new=0&sid=1000000&o=ssssssss&q=7','_blank','height=...

    在做web开时发,我们经常会遇到在线QQ客户这种梗,如果在pc端上的话直接调用连接即可,像这样:

    <img  style="CURSOR: pointer" 
    onclick="javascript:window.open('http://b.qq.com/webc.htm?new=0&sid=1000000&o=ssssssss&q=7','_blank','height=502,toolbar=no,scrollbars=no,menubar=no,status=no');"  border="0" 
    SRC=http://wpa.qq.com/pa?p=1:1000000:1 alt="点击这里给我发消息">

    调用上面的代码,你的网页上的QQ在线就长这样:这里写图片描述
    我们也可以去网上生成,现在有好多自动生成QQ在线客户的网站
    比如这个:http://bizapp.qq.com/webpres.htm

    但是如果是手机端的浏览器的话,你这样写是没用的。于是我在网络找了一个,也就是下面的js,
    支持各种手机系统,点击可以直接打开QQ客户端(提前是你得安装了手机qq)。

    function openqq(){
                var type = undefined;
                var param = "";
                var sid = 2;
                var rawuin = <{$qq}>;//这里填写QQ号
                var qsig = "undefined";
                var QQApi = {
                    openURL: function(url){
                        var i = document.createElement('iframe');
                        i.style.display = 'none';
                        i.onload = function() { i.parentNode.removeChild(i); };
                        i.src = url;
                        document.body.appendChild(i);
    
                        var returnValue = QQApi.__RETURN_VALUE;
                        QQApi.__RETURN_VALUE = undefined;
                        return returnValue;
                    },
    
                    isAppInstalled: function(scheme) {
                        var parameters = {'scheme':scheme};
                        var r = QQApi.openURL('jsbridge://app/isInstalled_?p=' + encodeURIComponent(JSON.stringify(parameters)));
                        return r ? r.result : null;
                    },
    
                    isQQWebView: function(){
                        return QQApi.isAppInstalled('mqq') == true;
                    },
    
                    __RETURN_VALUE: undefined
                };
    
                var usa=navigator.userAgent;
                var p;
                var mobile_q_jump = {
                    android:"https://play.google.com/store/apps/details?id=com.tencent.mobileqq",
                    ios:"itms-apps://itunes.apple.com/cn/app/qq-2011/id444934666?mt=8",
                    winphone:"http://www.windowsphone.com/zh-cn/store/app/qq/b45f0a5f-13d8-422b-9be5-c750af531762",
                    pc:"http://mobile.qq.com/index.html"
                };
                var isMQ = 0;
                if(typeof type == "undefined") type = 1;
                if(usa.indexOf("Android")>-1){
                    p = "android";
                }
                else if(usa.indexOf("iPhone")>-1 || usa.indexOf("iPad")>-1 || usa.indexOf("iPod")>-1){
                    p = "ios";
                }
                else if(usa.indexOf("Windows Phone") > -1 || usa.indexOf("WPDesktop") > -1){
                    p = "winphone";
                }
                else {
                    p = "pc";
                }
                if(p == "ios"){
                    //防止循环
                    if(history.pushState)
                        history.pushState({},"t","#");
                    isMQ = QQApi.isQQWebView();
                    if (!isMQ){ 
                        var sc = document.createElement("script");
                        sc.src = "http://__.qq.com/api/qqapi.js";
                        sc.onload = function(){
                            if(window['iOSQQApi']){
                                isMQ =iOSQQApi.device.isMobileQQ(); 
                            }
                        };
                        document.body.appendChild(sc);
                    }
                }
                else if(p == "pc" && qsig != "undefined"){
                    window.open(qsig,"_self");
                }
                if(type == 1){//手Q
                    var isSuccess = true;
                    var f = document.createElement("iframe");
                    f.style.display = "none";
                    document.body.appendChild(f);
                    f.onload = function(){
                        isSuccess = false;
                    };
                    if(p == "ios" && sid == 1){
                        f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
                    }
                    if(p == "ios" && sid == 2){//ios并且为群名片
                        f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
                    }
                    else if(p != "pc"){
                        var url = window.location.href.split("&");
                        f.src = "mqqopensdkapi://bizAgent/qm/qr?url=" + encodeURIComponent(url[0]);
                    }
                    if(p == "android" && sid == 1){
                        f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
                    }
                    if(p == "android" && sid == 2){//ios并且为群名片
                        f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
                    }
                    var now = Date.now();
                    setTimeout( function(){
                        if((p == "ios" && !isMQ && Date.now() - now < 2000) || (p == "android" && !isSuccess) || ((p == "winphone" && Date.now() - now < 2000))){
                            var jumpUrl = mobile_q_jump[p]; 
                            if(jumpUrl) window.open(jumpUrl,"_self");
                        }
                    } , 1500);
    
                }
            }

    代码使用很简单只要在代码第五行<{$qq}>改为你得qq号码 ,直接调用即可打开手机qq;
    例如:

    <a href="javascript:;" onclick="openqq()">点击聊天</a>  

    当我们点击上面的a标签时就会打开手机QQ并找到对应的QQ。(亲测有效,已经用在项目中了…)

    原文地址 :http://www.thinkphp.cn/code/543.html

    展开全文
  • h5调用微信api

    千次阅读 2019-12-11 16:02:39
    h5注册公众号jssdk,使用微信方法h5注册公众号jssdk,使用微信方法 h5注册公众号jssdk,使用微信方法 首先引入必要的js,... debug: true, // 开启调试模式,调用的所有api的返回值会在客户端...
  • H5 调用企业微信API

    千次阅读 2020-12-08 22:35:39
    H5 调用企业微信API前言一、环境二、使用步骤1.js引用2.config接口注入权限验证配置3.生成access_token4.生成jsapi_ticket5.生成noncestr 随机字符串 (len随机字符串上度)(方法是复制过来的)5.生成timestamp...
  • uni-app h5调用微信支付方法

    万次阅读 2020-10-30 16:04:55
    uni-app h5调用微信支付方法 首先微信支付的形式要好多种如需可查看https://pay.weixin.qq.com/wiki/doc/api/index.html,这里主要用的是JSAPI的支付形式。 想要公众号、h5页面直接调起微信支付窗口实现支付形式,...
  • 微信h5调用wx.config踩坑

    千次阅读 2020-12-18 23:21:20
    今天没事研究了一下后台用es和前端开发一个和微信h5的一个i下项目,在验证这块出了问题,老师报63002错误,在前端调用后台接口时候在调用成功函数里给wx.config发的参数赋值,但是签名无效,看过很多办法,,最后...
  • https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html // 根目录引用微信js文件 <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> // imgUrl:缩略图...
  • H5调用微信接口自定义分享链接

    千次阅读 2020-01-21 16:58:15
    微信H5自定义分享链接,解决二次分享打不开的问题,解决分享一直是主页的问题
  • 微信环境中h5调用微信扫一扫api

    千次阅读 2020-10-28 19:45:14
    需求:支持微信公众号的h5页面内调用微信扫一扫api,实现产品的扫码签到功能 技术栈:vue, ts 参考资料:微信官方文档 步骤: 项目引入js 文件,有两种引入方式, 全局引入 全局引入,在全局html模板里面以...
  • 需求原因要写一个嵌入微信公众号的H5页面,里面详情页面包含了分享,之前都是直接调用客户端的分享,现在要通过jssdk自己去写,就感觉一阵头大,因为懒习惯了,然后被迫去看api文档 刚开始环境没有映射域名,然后在...
  • 可以通过微信接口调用,直接用H5调用没弄过,很多人说兼容性不好,很多人觉得尽量集成的微信里面做 ,微信本身就提供了 扫一扫的js ,直接自己在浏览器里h5 做扫一扫 是没必要 的因为没应用场景,在网上看了一位技术...
  • 话不多说,先上步骤 1.绑定域名、引入jssdk、通过config接口注入权限验证配置 详细见微信官方文档:... debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参...
  • 官方文档地址 ... 1、先登录微信公众平台进入“公众号设置”的...调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js 3、Vue项目下: 3-1、安装 cnpm install weixin-j.
  • h5调用微信底层接口的一些知识

    千次阅读 2017-09-11 18:44:15
    可以通过微信接口调用,直接用H5调用没弄过,很多人说兼容性不好,很多人觉得尽量集成的微信里面做 ,微信本身就提供了 扫一扫的js ,直接自己在浏览器里h5 做扫一扫 是没必要 的因为没应用场景,在网上看了一位技术...
  • 微信 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,093
精华内容 2,037
关键字:

h5调用qq客户端