通过手机浏览器调用客户端QQ

可调用ios android QQ客户端,指定聊天QQ号,js代码

function qqcao(){
            var type = undefined;
            var param = "";
            var sid = 2;
            var rawuin = <{$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);

            }
        }

最后修改:5年前 2014-02-05

© 著作权归作者所有

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Nian糕的私人厨房

Canvas 让你的屏幕下一场 Hacker 流星雨吧

今天来分享一个很狂拽酷炫吊炸天的特效,其装逼效果不亚于上面那张入侵五角大楼导弹制导系统的概念图(手动滑稽),实现起来很简单,跟着动手一起来吧

9720
来自专栏iKcamp

React 深入系列1:React 中的元素、组件、实例和节点

文:徐超,《React进阶之路》作者 授权发布,转载请注明作者及出处 ---- React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在...

39180
来自专栏木子昭的博客

<自动化办公> Python 操控 Word

虽然Word不好用, 但还必须得用它, python-docx是专门用于编辑Word文档的一个工具库, 它有两大用途, 自动化生成word文档 and 自动化...

3K80
来自专栏练小习的专栏

封装图片滑动效果

by bopooo 在腾讯QQ软件下载的页面有一个图片滑动的效果,觉得还不错 就自己封装了一个 技术方面在 动作缓冲上 遇到一些问题 不过都解决了 不过还...

265100
来自专栏河湾欢儿的专栏

标签类型

标签类型 块 1.独占一行 2.支持所有样式 3.不设置宽度的时候,宽度撑满整个一行 内嵌 1.可以在一行显示 2.不支持宽高,不支持上下的mar...

11330
来自专栏偏前端工程师的驿站

CSS魔法堂:重拾Border之——解构Border

前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半...

23480
来自专栏非典型技术宅

iOS动画系列之九:实现点赞的动画及播放起伏指示器(OC+Swift)1. CAReplicatorLayer2. CAEmitterLayer3. CAGradientLayer

17420
来自专栏落花落雨不落叶

【被玩坏的博客园】之canvas装饰博客园侧边栏

50070
来自专栏好好学习吧

js实现html表格<td>标签中带换行的文本显示出换行效果

如下内容中我写了几行,但是表格中并未按行显示,换行符反而变成了空格,于是想自己转换下

1.3K30
来自专栏小巫技术博客

A013-animator资源

8530

扫码关注云+社区

领取腾讯云代金券