手机QQ

全部目录

接口文档

CORE

-mqqapi内核的方法和属性

iOS

>= iOS 4.2 >= android 4.2

使用说明 : 如果在 iOS 中,值为 true,否则为 false

android

>= iOS 4.2 >= android 4.2

使用说明 : 如果在 android 中,值为 true,否则为 false

version

>= iOS 4.2 >= android 4.2

使用说明 : mqqapi自身的版本号

QQVersion

>= iOS 4.2 >= android 4.2

使用说明 : 如果在 手机 QQ中,值为手机QQ的版本号,如:4.6.2,否则为 0

callback(handler, deleteOnExec, execOnNewThread)

>= iOS 4.2 >= Android 4.2

使用说明 : 用于生成回调名字,跟着 invoke 的参数传给客户端,客户端执行回调时,根据该回调名字找到相应的回调处理函数并执行
警告:  如果在 UI 相关接口的回调中调用 alert 等 UI 接口,会导致 WebView 假死,只能关进程处理
严重: 如果在接口 A 的回调中继续调用接口 B,接口 B 的调用可能会无效亦或者返回结果不正确

参数

名称 类型 描述
handler() Function 必选:是
说明:接口的回调处理函数
deleteOnExec() Boolean 必选:否
说明: 若为 true 则执行完该回调之后删除之,用于防止同一个回调被多次执行(某些情况下有用)
execOnNewThread() Boolean 必选:否
说明: 若为 true 则在另一个线程执行回调,iOS 中,以下两种场景须指定该参数为 true
默认值:true

Example

var callbackName = mqq.callback(function(type, index){
    console.log("type: " + type + ", index: " + index);
});
//弹出 ActionSheet
mqq.invoke("ui", "showActionSheet", {
    "title" : "title",
    "items" : ["item1", "item2"],
    "cancel" : "cancel",
    "close" : "close",
    "onclick": callbackName
}

data

-本地和远程数据接口

setShareInfo

>=iOS 4.6 >=android 4.6

使用说明:定制分享出去的url,图片,和文字等
注意:share_url必须跟页面url同一个域名,否则设置不生效

setShareInfo(params, callback)

  • params -- 必选 Object
    • share_url -- 可选 String 页面可以定制分享出去的url,可去掉某些敏感参数等,如果不传,则使用页面的url,长度不能超过120字节,超过的请转短链。另外,url必须跟页面url同一个域名,否则设置不生效。
    • title -- 必选 String 分享的标题,最大45字节
    • desc -- 必选 String 分享的摘要,最大60字节
    • image_url -- 可选 String 图片URL,原 imageUrl 参数,可以继续使用 imageUrl。
      • 注意:图片最小需要200 * 200,否则分享到Qzone时会被Qzone过滤掉。
    • callback -- Function 可选 回调

Example


 // 另外使用meta同样可以达到该接口的作用
 <meta itemprop="name" content="这是分享的标题"/>
 <meta itemprop="image" content="http://imgcache.qq.com/qqshow/ac/v4/global/logo.png" />
 <meta name="description" itemprop="description" content="这是要分享的内容" />

H5应用设置方法

window.mqq.invoke("data","setShareInfo", {
    share_url: window.OPEN_DATA && window.OPEN_DATA.shareurl,
    title: 'H5应用',
    desc: 'H5开放平台',
    image_url: 'http://i.gtimg.cn/open/app_icon/05/58/35/77/1105583577_100_m.png'
});
严重:iOS端不支持callback回调,安卓超过60字符会转短地址

device -系统和硬件相关信息

getClientInfo

>=iOS 4.5 >=android 4.6

使用说明:获取客户端信息

参数

  • callback[必选] {Function} 回调
  • callback.param[必选] {Object}
  • callback.param.qqVersion[必选] {String} 获取手机QQ版本号,如"4.5.0"
  • callback.param.qqBuild[必选] {String} 获取手机QQ构建版本号,如"4.5.0.1",一般不需要使用到这个东东

getNetworkInfo

>=iOS 5.2 >=android 5.2

使用说明:获取细化的具体网络类型

参数

  • callback[必选] {Function} 回调
  • callback.param[必选] {Object}
  • callback.param.type[必选] {Number} 网络类型,和原本的getNetworkType接口一样
  • callback.param.radio[必选] {String} 细化的网络类型

sensor -传感器相关接口

startAccelerometer

>=iOS 4.6 >=android 4.6

使用说明:开始监听重力感应数据,回调会获得三个轴的数值,监听频率 50次/秒

参数

  • callback[必选] {Function} 回调函数
  • callback.ret[必选] {Boolean} 是否成功启动传感器
  • callback.x[必选] {Number}
  • callback.y[必选] {Number}
  • callback.z[必选] {Number}

startCompass

>=iOS 4.6 >=android 4.6

使用说明:开始监听罗盘数据

参数

  • callback[必选] {Function} 回调函数
  • callback.ret[必选] {Boolean} 是否成功启动传感器
  • callback.direction[必选] {Number} 面对的方向度数,频率50次/秒

stopAccelerometer

>=iOS 4.6 >=android 4.6

使用说明:停止监听重力感应数据

stopCompass

>=iOS 4.6 >=android 4.6

使用说明:停止监听罗盘数据

ui -界面相关接口

pageVisibility

>=iOS 4.7 >=android 4.7

使用说明:查询页面的可见性。当当前可见view/activity不是本页面,或应用退到后台时,此接口返回false,否则返回true。

参数

  • callback[必选] {Function}
  • callback.result[必选] {Boolean} 页面可见返回 true,不可见返回 false

Example

mqq.invoke('ui', 'pageVisibility', function (r) {
    console.log("visible ?", r);
})

document.addEventListener("qbrowserVisibilityChange", function(e){
    console.log(e.hidden);
});
警告:另外当页面可见性发生改变时,document会抛出qbrowserVisibilityChange事件。

popBack

>=iOS 4.5 >=android 4.6

使用说明:关闭当前webview

Example

mqq.invoke('ui', 'popBack');

refreshTitle

>=iOS 4.6 android not support

使用说明:刷新客户端显示的网页标题。在iOS中,网页标题动态改变后,显示WebView的导航栏标题不会改变,请调用refreshTitle来手动刷新。Android不需要。

Example


 document.title="新标题";
 mqq.invoke('ui', 'refreshTitle');

scanQRcode

>= iOS 4.7 >= android 4.7

使用说明 : 唤起扫一扫来扫描二维码

参数

名称 类型 必选 描述
name String 扫描结果如果要放到url的#参数上,则指定一个参数名
callback(result) Function 扫描结果回调

返回值

名称 类型 描述
result String 扫描的结果字符串

Example

mqq.ui.scanQRcode({}, function(result){
    console.log(retCode, decodeURIComponent(result));
})

setWebViewBehavior

>=iOS 4.7.2 >=android 5.1

使用说明:配置webview的行为

参数

  • param[必选] {Object}
  • param.swipeBack[必选] {Number} 是(1)否(0)支持右划关闭手势
  • param.actionButton[必选] {Number} 是(1)否(0)显示右上角按钮
  • param.navBgColor[必选] {Number} 背景颜色,例如:0xFF0000
  • param.navTextColor[必选] {Number} 文字颜色,例如:0xFF0000
  • param.keyboardDisplayRequiresUserAction[必选] {Boolean} 设置为false允许js不经用户触发来弹起键盘

Example

 //关闭右滑
 mqq.invoke('ui', 'setWebViewBehavior', {
     swipeBack:0
 })
  //设置导航栏为黑色背景、红色文字:
 mqq.invoke('ui', 'setWebViewBehavior', {navBgColor:0x000000, navTextColor:0xFF0000});
 //只修改背景颜色为灰色,文字颜色不变:
 mqq.invoke('ui', 'setWebViewBahavior', {navBgColor:0x666666});
 //只修改文字颜色为黑色,背景颜色不变:
 mqq.invoke('ui', 'setWebViewBahavior', {navTextColor:0});
 //恢复默认样式:
 mqq.invoke('ui', 'setWebViewBehavior', {navBgColor:-1, navTextColor:-1});

Qzone -手Q空间接口

writeMood

>= Android 6.6 >= IOS 6.6

使用说明 : 呼起说说发表界面

参数

名称 类型 必选 描述
text String 默认文字
photoList Array<Object> 图片列表

参数 photoList<Object>

名称 类型 必选 描述
url string 图片url地址
width Number 图片宽度
height Number 图片高度

Example

window.mqq.invoke('Qzone','writeMood',{
    text: '这是默认文字',
    photoList: [
        {
            url : 'http://p.qpic.cn/relation/2262359184/2262359184_1475072537827692_19518/0',
            width: 640,
            height: 340
        },
        {
            url : 'http://p.qpic.cn/relation/2262359184/2262359184_1475072728850158_27169/0',
            width: 300,
            height: 450
        }
    ]
});

sharePicture

>= Android 6.7 >= IOS 6.7

使用说明 : 图片分享(base64),建议图片大小在500k以内,最大不超过1M

参数

名称 类型 必选 描述
type String 分享的目标类型,默认为 0
0:QQ好友;
1:QQ空间;
2:微信好友;
3:微信朋友圈。
base64 String 图片的base64

返回值

名称 类型 描述
retCode int 返回码

Example

window.mqq.invoke('Qzone','sharePicture',{
    type: '0',
    base64: 'data:image/jpg;base64,/9j/4AAQ...'
}, function(data){
    //data.retCode
    // 0 -- 用户点击发送,完成整个分享流程
    // -1 -- 用户点击取消,中断分享流程(android)
    // -2 -- 用户点击取消,中断分享流程(ios)
    // xx -- 分享微信失败错误码(ios) e.g. 404-未找到微信,其他透传微信错误码
});

注意

  1. type必需是字符串类型
  2. IOS里面不支持png与jpeg,如果是canvas导出的图片,请将jpeg替换成jpg
var  base64 = canvas.toDataURL("image/jpeg")
                    .replace('data:image/jpeg;','data:image/jpg;');

StartQunRedPointNotify

使用说明 : 开启监听群相册红点通知

参数

名称 类型 描述
groupCode Number 必选:是
说明:群号

Example

mqq.invoke("Qzone", "StartQunRedPointNotify", {groupCode: 123456});

//接收红点数据
window.QZQunRedPointInterface = window.QZQunRedPointInterface || {};
window.QZQunRedPointInterface.onReceive = function(ret) {
    // 红点个数 ret.data
};

EndQunRedPointNotify

使用说明 : 关闭监听群相册红点通知

Example

mqq.invoke("Qzone", "EndQunRedPointNotify");

GroupUploadPhoto

使用说明 : 打开群相册上传图片组件

参数

名称 类型 描述
groupCode Number 必选:是
说明:群号

Example

mqq.invoke("Qzone", "GroupUploadPhoto", {groupCode: 123456});

QunDownloadPhoto

使用说明 : 下载指定 url 图片

参数

名称 类型 描述
photos Array 必选:是
说明:url 数组

Example

mqq.invoke("Qzone", "QunDownloadPhoto", {
    photos: [{
        originurl: '原图 url',
        bigurl: '大图 url'
    }]
});

GroupQuote

使用说明 : 从空间转载到群相册

参数

名称 类型 描述
groupCode Number 必选:是
说明:群号

Example

mqq.invoke("Qzone", "GroupQuote", {groupCode: 123456});

QunDidPickAlbum

使用说明 : native 选择 h5 群相册,将选择的 h5 群相册信息传给 native

参数

名称 类型 描述
albumid String 必选:是
说明:相册id
albumname String 必选:是
说明:相册名

Example

mqq.invoke("Qzone", "QunDidPickAlbum", {
    albumid: 'id',
    albumname: 'name'
});

QunPickQzoneAlbum

使用说明 : h5 选择 native 空间相册,将选择的 native 空间相册信息传给 h5

Example

mqq.invoke("Qzone", "QunPickQzoneAlbum", {}, function(result) {
    result {
        albumid: xx,
        albumname: xx,
        albumcover: xx,
        albumpermission: xx
    }
});

TopicComment

使用说明 : 打开评论组件

参数

名称 类型 描述
content String 必选:是
说明:默认内容
placeholder String 必选:是
说明:占位符
needEmoticonBtn Boolean 必选:是
说明:1表示显示,0表示隐藏 默认为0
needAtBtn Boolean 必选:是
说明:1表示显示@好友按钮,0表示隐藏 默认为0
needPrivateBtn Boolean 必选:是
说明:1表示显示私密评论按钮,0表示隐藏 ,默认为0
privateCommentStatus Boolean 必选:是
说明:1表示点亮私密评论按钮,0表示不点亮, 默认为0
isReply Boolean 必选:是
说明:1表示是回复,0表示不是回复。当isReply和privateCommentStatus都为1时,私密评论按钮亮起并不可点,注意此时needPrivateBtn需要设置为1,needPrivateBtn优先级最高
maxTextLength Number 必选:是
说明:允许输入的最大字符长度,字符长度计算逻辑同客户端现有逻辑,没传表示使用客户端现在的默认值
groupdId Number 必选:是
说明:如果是要@群成员的场景,需要传入群id,用于拉取群的成员来@

Example

mqq.invoke("Qzone", "TopicComment", {
    content: '默认内容',
    placeholder: '占位符',
    needEmoticonBtn: 1,
    needAtBtn: 1,
    needPrivateBtn: 1,
    privateCommentStatus: 1,
    isReply: 1,
    maxTextLength: 140,
    groupdId: 111122333,
}, function(result) {
    result {
        content: 'xxx',      //用户在输入框中输入的内容,表情需要转为[em]xxxx[/em]的格式,@某人要转成 : @{uin:183852032,nick:diaodiao}
        privateComment: 1    //私密状态开启为1,不开启为0,请返回数字类型,如果不能返回数字,则改成,开启返回字符串1,未开启返回空字符串
    }
});

HideTopicComment

使用说明 : 关闭评论框

Example

mqq.invoke("Qzone", "HideTopicComment");

downloadSuperLikeMusic

>=iOS 6.6.0

使用说明 : 预加载音效文件,配合playSuperLikeMusic使用

参数

名称 类型 描述
likeID String 必选:是
说明:音效ID
url String 必选:是
说明:音效地址,格式须是zip,zip包里面是mp3文件
md5 String 必选:是
说明:音效文件的md5

Example

mqq.invoke("Qzone", "downloadSuperLikeMusic", {
            likeID: '10140',
            url: 'http://qzone.cm.com/qzone/space_item/material/BroadcastLike/org/0/10144/rock2.zip',
            md5: 'ebe105397e7c4f04e8599728d0180803'
        }, function(){

        });

playSuperLikeMusic

>=iOS 6.6.0

使用说明 : 播放预加载的音效文件,配合downloadSuperLikeMusic使用

参数

名称 类型 描述
likeID String 必选:是
说明:音效ID
md5 String 必选:是
说明:音效文件的md5

Example

mqq.invoke("Qzone", "playSuperLikeMusic", {
            likeID: '10140',
            md5: 'ebe105397e7c4f04e8599728d0180803'
        });

OpenUrl

>=iOS 7.3.0 >=Android 7.3.0

使用说明 : 打开全透明的Webview

参数

名称 类型 描述
url String 必选:是
说明:url
transparent boolean 必选:是
说明:1 表示打开透明Webview,0表示非透明

Example

mqq.invoke("Qzone", "OpenUrl", {
            url: 'https://h5.qzone.qq.com/hybrid/app/show/recoverDialog?type=',
            transparent: 1
        });

QzMusic -手Q音乐播放接口

getPlayingSongInfo

使用说明 : 获取正在播放的音乐信息

参数:无需参数

Example

mqq.invoke("QzMusic", "getPlayingSongInfo", {});

listenMusicState

使用说明 : 监听播放器信息变化

Example

mqq.invoke("QzMusic", "listenMusicState", {isOpen: 1});
特别说明 : 在调用getPlayingSongInfo 和 listenMusicState 之前,应先绑定回调函数,如下示例:
window.QQMusicJSInterface = {
    onRecieve : function(ret){
        if(ret && ret.type == 'WEBAPP_MUSIC' && ret.data){
            var data = ret.data;
            data.type = $.trim(data.type); // 剔除前后的空格(客户端写得有问题)
            if('songinfo' == data.type) {//native有歌曲播放时进入这里
                if('playing' == data.value.state) {
                    var currentTime = data.value.curr;
                } else if('paused' == data.value.state) {

                } else {

                }
            }
        }
    }
}

playMusic

使用说明 : 播放音乐

参数

名称 类型 描述
currentTime Number 必选:是
说明:开始播放时间,单位s
detailUrl String 必选:是
说明:点击播放条跳转的h5 url
duration Number 必选:是
说明:歌曲时长,单位s
name String 必选:是
说明:播放条展示文案
playUrl String 必选:是
说明:音频url
type Number 必选:是
说明:播放类型,一般固定填6
songId Number 必选:是
说明:歌曲id,如果你填了又正好songId是qq音乐的,ios下点击播放条会忽视你填的detailUrl,直接跳到qq音乐的h5页面,所以一般直接填0

Example

mqq.invoke("QzMusic", "playMusic", {
    currentTime: 0,
    detailUrl: 'http://fm.qq.com/luobo/hot?_wv=1',
    duration: 100,
    name: '好友热播榜',
    playUrl: 'xxx',
    type: 6,
    songId: 0
});

pausePlay

使用说明 : 暂停正在播放的歌曲

参数:无需参数

Example

mqq.invoke("QzMusic", "pausePlay");

resumePlay

使用说明 : 恢复播放

参数:无需参数

Example

mqq.invoke("QzMusic", "resumePlay");

QzoneData

offlineHttpProxy

>= Android 6.1 >= IOS 6.3

使用说明 : Qzone 6.1及以上版本支持   
离线预加载wns+html

参数

名称 类型 描述
proxyUrl string 必选:是 要预加载的url(proxyUrl中必须带_proxy=1或_proxy=true)
isCheckCache boolean 是否检查本地缓存

返回值

名称 类型 描述
code int 返回码
msg String 错误信息

Example

mqq.invoke("QzoneData","offlineHttpProxy", {
    proxyUrl:"url...",//要预加载的url
    isCheckCache:true//是否检查本地缓存
}, function(evt){
    alert(evt.data);
});

QzoneAudio

startRecord

>= Android 7.1 >= IOS 7.1

使用说明 : 开始录音,最多能录5分钟

参数:无需参数

返回值:android QQ没有实现回调函数,所以音频本地id千万别从这里取,应从下面的stopRecord回调里取

名称 类型 描述
audioClientKey String 音频本地id

Example

mqq.invoke("QzoneAudio","startRecord", {}, function(data){
    alert(data.audioClientKey);
});
//录音满5分钟自动停止,这里提供监听事件
mqq.addEventListener("QzoneJSBridgeQzoneAudioPlugin_RecordState",function(data){
    alert(data.audioClientKey);
});

stopRecord

>= Android 7.1 >= IOS 7.1

使用说明 : 停止录音,获取音频本地id

参数:无需参数

返回值

名称 类型 描述
audioClientKey String 音频本地id

Example

mqq.invoke("QzoneAudio","stopRecord", {}, function(data){
    alert(data.audioClientKey);
});

startPlay

>= Android 7.1 >= IOS 7.1

使用说明 : 播放本地录音

参数:

名称 类型 描述
audioClientKey String 必选:是 要播放的本地音频id

返回值:无意义

Example

mqq.invoke("QzoneAudio","startPlay", {
    audioClientKey: xxx
}, function(data){
    alert(data);
});
//播放完成的监听事件
mqq.addEventListener("QzoneJSBridgeQzoneAudioPlugin_PlayState",function(data){
    alert(data);
});

pausePlay

>= Android 7.1 >= IOS 7.1

使用说明 : 暂停播放

参数:

名称 类型 描述
audioClientKey String 必选:是 要暂停播放的本地音频id

返回值:无意义

Example

mqq.invoke("QzoneAudio","pausePlay", {
    audioClientKey: xxx
}, function(data){
    alert(data);
});

stopPlay

>= Android 7.1 >= IOS 7.1

使用说明 : 停止播放

参数:

名称 类型 描述
audioClientKey String 必选:是 要停止播放的本地音频id

返回值:无意义

Example

mqq.invoke("QzoneAudio","stopPlay", {
    audioClientKey: xxx
}, function(data){
    alert(data);
});

startUpload

>= Android 7.1 >= IOS 7.1

使用说明 : 上传音频

参数:

名称 类型 描述
audioClientKey String 必选:是 要上传的本地音频id

返回值:

名称 类型 描述
audioServerKey String 音频服务器id,下载音频时候需要

Example

mqq.invoke("QzoneAudio","startUpload", {
    audioClientKey: xxx
}, function(data){
    alert(data.audioServerKey);
});