手机QQ

全部目录

接口文档

Core

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
}

support

>= IOS 5.5 >= Android 5.5

使用说明 : 检测客户端是否支持API

参数

名称 类型 必选 描述
APIName string 是 API名字,如mqq.ui.openUrl

返回值

类型 描述
Boolean 说明: 是否支持API

Example

if(mqq.support("mqq.ui.topicSend")) {

} else {

}

Data

setClipboard

>= IOS 4.7.2 >= android 4.7.2

使用说明 : 复制内容到剪贴板,目前支持纯文本

setClipboard(params, callback)

  • params -- Object
    • text -- String 必选 被复制的内容
  • callback(result) -- Function 必选 回调
    • result -- Boolean 必选 true:复制成功;false:复制失败

Example

mqq.data.setClipboard({
    text: 'CDKEY'
},function(result){
    if(result){
        alert('复制成功');
    }else{
        alert('复制失败');
    }
});

getPageLoadStamp

>= IOS 5.5 >= Android 5.5

使用说明 : 返回【创建 WebView 】到 【 WebView 开始加载url】间的时间点

返回值

名称 类型 描述
ret Number 说明: 返回码,0为成功
onCreateTime Number 说明:开始创建 WebView 的时间戳
startLoadUrlTime Number 说明: 开始加载 url 的时间戳
url String 说明: WebView 最初加载的 url

Example

mqq.invoke('data', 'getPageLoadStamp',function(evt){
    alert(JSON.stringify(evt.data));
});

getPerformance

>= IOS 5.5 >= Android 5.5

使用说明 : 获取Performance数据,得到webveiw的各个时间点
警告:  该接口只能在onload()之后调用

返回值

  • 名称:result 类型:Number 描述:返回码。-1:错误,0:成功;
  • 名称:message 类型:String 描述:具体错误信息
  • 名称:data 类型:Object 描述:数据对象如下
  • clickStart Number 说明: 单击按钮的瞬间时间戳,单位毫秒;
  • pageStart Number 说明: Web 页面开始加载的时间戳,单位毫秒;
  • pageFinish Number 说明: Web 页面完成加载的时间戳,单位毫秒;

Example

mqq.invoke('data', 'getPerformance',function(evt){
    alert(JSON.stringify(evt.data));
});

readH5Data

>= IOS 5.5 >= Android 5.5

使用说明 : webview数据存储读

返回值

  • 名称:obj 一级对象
  • 名称:code 类型:int 描述:可选值: -0: 操作成功 -2: JSON数据格式有误 -3: 参数不能为空 -5: 没有权限操作该域的数据 -6: path不能为空 -7: key不能为空 -8: data不能为空 -9: 空间不足或不存在SD卡 -11: 读取不到任何数据 -12: 写入数据量过大
  • 名称:data 类型:Object 描述:数据对象如下
    • callid //写入时传入,用于区分业务id
    • data //返回的string数据

Example

var obj = {
       callid:200, //用来标示请求id, 返回时把该值传回
    host:"qzs.qq.com",//如果host不为空, 且是该页面的域名的父域名, 则往host写, 如果为空则往页面的域名写, 其他为错误
    path:"test",//区分业务
    key:"key1",//数据对应的key
};
mqq.invoke("data","readH5Data",obj,function(re){
    console.log(re);
});

writeH5Data

>= IOS 5.5 >= Android 5.5

使用说明 : webview数据存储写

返回值

  • 名称:obj 一级对象
  • 名称:code 类型:int 描述:可选值: -0: 操作成功 -2: JSON数据格式有误 -3: 参数不能为空 -5: 没有权限操作该域的数据 -6: path不能为空 -7: key不能为空 -8: data不能为空 -9: 空间不足或不存在SD卡 -11: 读取不到任何数据 -12: 写入数据量过大
  • 名称:data 类型:Object 描述:数据对象如下
    • callid //写入时传入,用于区分业务id

Example

var obj = {
    callid:200, //用来标示请求id, 返回时把该值传回
    host:"qzs.qq.com",//如果host不为空, 且是该页面的域名的父域名, 则往host写, 如果为空则往页面的域名写, 其他为错误
    path:"test",//区分业务
    key:"key1",//数据对应的key
    data:"test Data"
};
mqq.invoke("data","writeH5Data",obj,function(re){
    console.log(re);
});

Device

getDeviceInfo

>= IOS 5.5 >= Android 5.5

使用说明 : 获取设备信息

返回值

名称 类型 必选 描述
systemName String 是 系统名,如"iPhone OS"
systemVersion String 是 系统版本,如"6.0"
model String 是 机器系列,如"iPhone", "iPod touch"
modelVersion String 是 机型,如"iPhone 6"
identifier String 是 设备唯一标识,Android端获取的是IMEI码,IOS端获取到的是根据IMEI码加密之后,并且每个APP获取到的均不同

Example

mqq.invoke('device', 'getDeviceInfo', function(data){
    console.log(data);
});

getNetworkType

>= IOS 4.5 >= android 4.6

使用说明 : 获取网络类型

getNetworkType(callback)

  • callback(result) -- Function 回调
    • result -- Number 结果
      • -1 -- Unknown未知类型网络
      • 0 -- NotReachable
      • 1 -- ReachableViaWiFi
      • 2 -- ReachableVia2G
      • 3 -- ReachableVia3G
      • 4 -- 4G

Example

mqq.device.getNetworkType(function(result){
    alert(result);
});

getNetworkInfo

>= IOS 5.5 >= Android 5.5

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

返回值

  • type -- Bumber 网络类型,和原本的getNetworkType接口一样
    • -1 -- 未知类型网络
    • 0 -- NotReachable
    • 1 -- ReachableViaWiFi
    • 2 -- ReachableVia2G
    • 3 -- ReachableVia3G
    • 4 -- 4G
  • radio -- String 细化的网络类型

Example

mqq.invoke('device', 'getNetworkInfo',function(data){
    console.log(data);
});

setScreenStatus

IOS not support >= android 5.0

使用说明 : 设置屏幕是否常亮

setScreenStatus(param, callback)

  • param -- Object 必选
    • status -- Number 必选 状态标识
      • 0 -- 屏幕不长亮
      • 1 -- 屏幕长亮
  • callback(result, message) -- Function 必选 状态标识
    • result -- Number 必选 返回当前状态
      • 0 -- 屏幕不长亮
      • 1 -- 屏幕长亮
    • message -- String 必选 当前状态的文字描述

getPlatform

>= IOS 5.5

使用说明 : 获取平台信息

返回值

名称 类型 必选 描述
name String 是 平台名 qq 或者 qzone
version String 是 平台版本,如"5.2"
sdkversion String 是 sdk版本 比如"1.0.0"

Example

mqq.invoke('device', 'getPlatform', function(data){
    console.log(data);
});

getMemInfo

>= IOS 5.5 >= Android 5.5

使用说明 : 获取内存信息

返回值

名称 类型 必选 描述
totalMem Number 是 总内存大小
idleMem Number 是 未使用内存大小

Example

mqq.invoke('device', 'getMemInfo', function(data){
    console.log(data);
});

getCPUInfo

>= IOS 5.5 >= Android 5.5

使用说明 : 获取CPU信息

返回值

名称 类型 必选 描述
maxFreq Number 是 CPU最大频率
minFreq Number 是 CPU最小频率
curFreq Number 是 CPU当前频率
CPUName String 是 CPU名字

Example

mqq.invoke('device', 'getCPUInfo', function(data){
    console.log(data);
});

getCPUCoreNum

>= IOS 6.0 >= Android 6.0

使用说明 : 获取CPU核数信息

返回值

名称 类型 必选 描述
count Number 是 总核数

Example

mqq.invoke('device', 'getCPUCoreNum', function(data){
    console.log(data);
});

Media

preloadSound

>= IOS 5.5 >= Android 5.5

使用说明 : 预加载离线包内的音频资源

参数

名称 类型 必选 描述
bid Number 是 离线业务的id,-1为播放网络资源
url String 是 音频文件的路径,相对离线包根目录

返回值

名称 类型 描述
ret Number 1加载成功,0加载失败

Example

mqq.invoke("media", "preloadSound",{
    bid: -1,
    url: "http://yourdomain/sound.mp3"
},function(data){
    alert(JSON.stringify(data));
});

playLocalSound

>= IOS 5.5 >= Android 5.5

使用说明 : 播放离线包里的音频,空间内把声音分为背景音乐和音效,背景音乐使用playLocalBackSound接口

参数

名称 类型 必选 描述
bid Number 是 离线业务的id,-1为播放网络资源
url String 是 音频文件的路径,相对离线包根目录

Example

mqq.invoke("media", "playLocalSound", {
    bid: -1,
    url: "http://yourdomain/sound.mp3"
});

getPicture

手机QQ>= IOS 5.5 >= Android 5.5 手机空间>= IOS 7.2 >= Android 7.2

使用说明 : 从相册选择图片或者调用摄像头拍照,以base64返回数据

参数

名称 类型 必选 描述
param Object 是 选项
callback(ret,images) Function 是 回调

选项param

名称 类型 必选 描述 备注
source Number 是 控制来源的,0:相册;1:拍照
front Boolean 是 是否使用前置摄像头
max Number 是 最大张数限制
outMaxWidth Number 是 限制输出的图片的最大宽度,超过将会压缩到指定值
outMaxHeight Number 是 限制输出的图片的最大高度,超过将会压缩到指定值
inMinWidth Number 是 限制输入的图片(展示给用户选择的)的最小宽度
inMinHeight Number 是 限制输入的图片(展示给用户选择的)的最小高度
urlOnly Boolean 是 为 true 则只返回 imageID,不返回 data 和 match,此时 outMaxHeight/outMaxWidth/inMinHeight/inMinWidth 无效。之后可以使用 getLocalImage 接口自行加载对应的图片内容 >= IOS 4.7 >=android 4.7

返回值

名称 类型 描述
ret Number 返回码。 0:成功;3:内存不足
images Array|Object 数据对象

数据对象images

名称 类型 描述 备注
data String 所选图片的base64数据
imageID String 所选图片的在手机QQ本地对应的路径 手机空间不支持此参数
match Number 所选图片是否符合最大最小尺寸要求等。0:符合要求;1:图片尺寸太小;2:读取、解码失败; 手机空间不支持此参数

Example

mqq.invoke("media", "getPicture",{
     source:0,
     front:false,
     max:30,
     outMaxWidth:400,
     outMaxHeight:400,
     inMinWidth:70,
     inMinHeight:70,
     urlOnly:false
},function(ret,data){
    console.log(data);
});

showPicture

>= IOS 5.5 >= Android 5.5

使用说明 : 显示图片查看器
注:独立版接口在ui下,请使用ui.showPicture

参数

名称 类型 必选 描述
imageIDs Array 是 图片url或本地路径
index Number 是 初始显示图片的索引,默认为0

Example

mqq.invoke("media", "showPicture",{
     imageIDs : [            
         "http://pub.idqqimg.com/qqmobile/pic/b1.jpg",            
         "http://pub.idqqimg.com/qqmobile/pic/b2.jpg",            
         "http://pub.idqqimg.com/qqmobile/pic/b3.jpg",            
         "http://pub.idqqimg.com/qqmobile/pic/b4.jpg"            
     ],            
     index : 2          
});

saveImage

>= IOS 5.1 >= android 5.2

使用说明 : 保存指定图片到手机相册(Android是保存到 QQImage 目录,相机程序会识别出来)

参数

名称 类型 必选 描述
param Object 是 调用参数
callback Function 是 回调函数

param

名称 类型 必选 描述
content String 是 图片的base64数据或者图片url

回调

名称 类型 必选 描述
data Object 是 返回值

data

名称 类型 必选 描述
retCode String 是 返回值
statusCode String 是 http状态码(针对url)
msg String 是 错误详情
imageID String 是 图片本地路径,可通过 getLocalImage 接口取图片

retCode

值 描述
0 保存成功
1: 没有写入相册的权限
2: 无效数据(针对base64)
3: 下载失败(针对url)
-1 其他错误

Example

mqq.invoke("media", "saveImage",{
    content : "http://pub.idqqimg.com/qqmobile/pic/b1.jpg"
},function(data){
    console.log(data);
});

App

checkAppInstalled

>= IOS 5.5 >= Android 5.5

使用说明 : 获取本地指定应用的本版号
警告:IOS只能获取当前应用的版本号,其它应用的无法获取

参数

名称 类型 必选 描述
name String 是 应用名

返回值

名称 类型 必选 描述
result Boolean 是 返回查询结果

Example

//检测手机QQ版本号
var value = "mqq"; //ios
//var value = "com.tencent.mobileqq"; //android
mqq.invoke('app', 'checkAppInstalled', { "name" : value }, function(result){
    alert("mobileqq version: " + result);
});

isAppInstalled

>= IOS 5.5 >= Android 5.5

使用说明 : 检测app是否安装

参数

名称 类型 必选 描述
name String 是 应用名

返回值

名称 类型 必选 描述
result Boolean 是 返回查询结果

Example

//检测手机QQ是否安装
var value = "mqq"; //ios
//var value = "com.tencent.mobileqq"; //android
mqq.invoke('app', 'isAppInstalled', { "name" : value }, function(result){
    alert("mobileqq is install: " + result);
});

launchApp

>= IOS 5.5 >= Android 5.5

使用说明 : 打开App

参数

名称 类型 必选 描述
name String 是 应用的schema或者包名

Example

mqq.invoke('app', 'launchApp', {
    name: "mqq"// IOS
});
mqq.invoke('app', 'launchApp', {
    name: "com.tencent.mobileqq"// android
});

isAppInstalledBatch

>= IOS 5.5 >= Android 5.5

使用说明 : 批量查询应用是否已安装

参数

名称 类型 必选 描述
name String 是 应用的schema或者包名,竖线分隔

Example

mqq.invoke("app","isAppInstalledBatch",{
    "name":"com.tencent.mobileqq|com.qzone"
},function(evt){
    alert(JSON.stringify(evt.data));
});

checkAppInstalledBatch

>= IOS 5.5 >= Android 5.5

使用说明 : 批量获取本地应用的版本号
警告:IOS只能获取当前应用的版本号,其它应用的无法获取

参数

名称 类型 必选 描述
name String 是 应用的schema或者包名,竖线分隔

Example

mqq.invoke("app","checkAppInstalledBatch",{
    "name":"com.tencent.mobileqq|com.qzone"
},function(evt){
    alert(JSON.stringify(evt.data));
});

Sensor

startListen

使用说明 : 开始监听麦克风音量
警告:这个接口是静默的,调用后用户无感知,最好 UI 给予用户提示页面将监听麦克风音量变化

返回值

名称 类型 必选 描述
ret Boolean 是 是否成功启动传感器
volume Number 是 音量大小(db),回调频率10次/秒

Example

mqq.invoke("sensor", "startListen", function (evt) {
    alert(JSON.stringify(evt.data));
});

stopListen

使用说明 : 停止监听麦克风音量大小

Example

mqq.invoke("sensor", "stopListen", function (){
    alert(“停止监听”);
});

getLocation

>= IOS 5.5 >= Android 5.5

使用说明 : 获取经纬度座标,这里返回的都是火星坐标,业务需要进行转换,
可以使用腾讯地图的API查询验证:http://lbs.qq.com/uri_v1/guide-geocoder.html,
如:http://apis.map.qq.com/uri/v1/geocoder?coord=22.543783,113.928937&coord_type=1,
coord_type需指定为 gps(也就是火星坐标)。

参数

名称 类型 必选 描述
options Object 否 配置参数
callback(ret,latitude,longitude,status) Function 是 回调函数

配置参数 options

名称 类型 必选 描述
allowCacheTime Number 否 读取多少时间内的缓存定位数据,以秒为单位

回调函数 callback(ret,latitude,longitude,status)

名称 类型 必选 描述
ret Number 是 0:成功; -1: 失败
latitude Number 是 纬度
longtitude Number 是 经度
status Object 是 状态

返回值status >= IOS 4.7 android not support

名称 类型 必选 描述
enabled Boolean 是 是否已开启传感器
authroized Boolean 是 是否已授权

Example

// 读取60s内的缓存数据
mqq.sensor.getLocation({allowCacheTime:60}, function(retCode, latitude, longitude){
    alert("retCode: " + retCode + " " + latitude + ", " + longitude);
});

Example

// 重新定位
mqq.sensor.getLocation(function(retCode, latitude, longitude){
    alert("retCode: " + retCode + " " + latitude + ", " + longitude);
});

getRealLoaction

>= IOS 5.5 >= Android 5.5

使用说明 : 获取地理位置

参数

名称 类型 必选 描述
allowCacheTime Number 否 读取多少时间内的缓存定位数据,以秒为单位

返回值

名称 类型 必选 描述
latitude Number 是 纬度
longtitude Number 是 经度

Example

mqq.invoke("sensor", "getRealLoaction", function (eva) {
    alert(JSON.stringify(evt.data));
});

vibrate

>= IOS 5.5 >= Android 5.5

使用说明 : 让手机震动一下

参数

名称 类型 必选 描述
time Number 否 单位是毫秒,android可以指定震动时间,IOS的震动时间是系统管理的,不能指定

Example

mqq.invoke("sensor", "vibrate",{time:1000});

startAccelerometer

>= IOS 5.5 >= Android 5.5

使用说明 : 开启重力感应

返回值

名称 类型 必选 描述
ret Boolean 是 是否成功启动传感器
x Number 是 x轴上大小
y Number 是 y轴上大小
z Number 是 z轴上大小

Example

mqq.invoke('sensor', 'startAccelerometer', function(data){
    console.log(data);
});

stopAccelerometer

>= IOS 5.5 >= Android 5.5

使用说明 : 关闭重力感应

Example

 mqq.invoke('sensor', 'stopAccelerometer');

startCompass

>= IOS 5.5 >= Android 5.5

使用说明 : 开启监听罗盘

返回值

名称 类型 必选 描述
ret Boolean 是 是否成功启动传感器
direction Number 是 面对的方向度数,频率50次/秒

Example

mqq.invoke('sensor', 'startCompass', function(data){
    console.log(data);
});

stopCompass

>= IOS 5.5 >= Android 5.5

使用说明 : 关闭监听罗盘

Example

 mqq.invoke('sensor', 'stopCompass');

UI

界面相关接口

openUrl

>= IOS 5.5 >= Android 5.5

使用说明 : 打开指定urL
警告: QQ空间不存在底部导航栏,因此style=2或3无效

参数

名称 类型 必选 描述
url String 是 需要打开的url
target Number 是 0为当前webview打开,1为新的webview打开,2为外部浏览器打开,默认为0
style Number 是 0: 顶部标题栏模式(无底部工具栏)1: 顶部标题栏无分享入口(无底部工具栏)2: 底部工具栏模式(顶部标题依然会存在)3: 底部工具栏模式且顶部无分享入口(顶部标题依然会存在)

Example

mqq.invoke("ui", "openUrl",{
    url     : "http://news.qq.com",
    target  : 1,
    style   : 1
});

popBack

>= IOS 4.5 >= android 4.6

使用说明 : 关闭当前webview

Example

mqq.ui.popBack();

setLeftButton

>= IOS 5.5 >= Android 5.5

使用说明 : 设置浏览器左按钮

参数

名称 类型 必选 描述
title String 是 设置左按钮文案

Example

mqq.invoke("ui", "setLeftButton",{
    title:"返回"
},function(){
    alert("点击了返回按钮");
});

showShareMenu

>= IOS 5.5 >= Android 5.5

使用说明 : 显示分享菜单

Example

mqq.ui.showShareMenu();

setOnShareHandler

>=IOS 4.7.2 >=android 4.7.2

使用说明:设置web页面分享的监听事件。用户点击右上角的弹出菜单后,点击了分享时会通知页面,此时需要调用 shareMessage 主动发起分享(系统默认的分享行为不再执行)

参数

名称 类型 必选 描述
callback(result) Function 是 回调

参数 result

名称 类型 必选 描述
type Number 是 用户点击的分享类型
0:QQ好友;
1:QQ空间;
2:微信好友;
3:微信朋友圈

H5应用设置方法

mqq.ui.setOnShareHandler(function(type){
    mqq.ui.shareMessage({
        title: '自定义的分享标题',
        desc: '自定义的分享描述',
        share_type: type,
        share_url: window.OPEN_DATA.shareurl,
        image_url: 'http://i.gtimg.cn/open/app_icon/05/58/35/77/1105583577_100_m.png',
        back: true
    },function(result){
        //result
    });
});

shareMessage

结合版 >= IOS 4.7.2 >= android 4.7.2 独立版 >= IOS 7.3 >= android 7.3

使用说明 : 调用客户端的分享接口,分享内容给好友/群/空间/微信,调用后会弹出联系人选择列表
建议在mqq.ui.setOnShareHandler的回调中配合使用

参数

名称 类型 必选 描述
params Object 是 参数
callback(result) Function 是 回调

参数 params

独立版仅支持 title/desc/share_url/image_url/share_type 字段
名称 类型 必选 描述
title String 是 必填,消息标题,最长45字节
desc String 是 必填,消息摘要,最长60字节。
share_type Number 是 分享的目标类型,默认为 0
0:QQ好友;
1:QQ空间;
2:微信好友;
3:微信朋友圈。
share_url String 是 点击消息后的跳转url,最长120字节。原 targetUrl 参数,可以继续使用 targetUrl
image_url String 是 消息左侧缩略图url。图片推荐使用正方形,宽高不够时等比例撑满,不会变形。原 imageUrl 参数,可以继续使用 imageUrl。注意:图片最小需要200 * 200,否则分享到Qzone时会被Qzone过滤掉。
back Boolean 是 >= IOS 5.0 >= android 4.7.2
发送消息之后是否返回到web页面,默认false,直接到AIO,注:该参数只对share_type=0时起作用
shareElement String 是 >= IOS 5.0 >= android 5.0
分享的类型,目前支持图文和音乐分享。默认为news
news:图文分享类型,
audio:音乐分享类型,
video:视频分享类型。
flash_url String 是 >= IOS 5.0 >= android 5.0
如果分享类型是音乐或者视频类型,则填写流媒体url
puin String 是 >= IOS 5.0 >= android 5.0
公众帐号uin,用于自定义结构化消息尾巴,只在公众账号分享的时候填写,若不是请不要填,当puin没有索引到本地记录,则显示sourceName字段的文本,若没有sourceName字段,则直接显示puin数字
appid String 是 >= IOS 5.0 >= android 5.0
来源 appid,在QQ互联申请的的 appid,如果有,可以填上
sourceName String 是 消息来源名称,默认为空,优先读取 appid 对应的名字,如果没有则读取 puin 对应的公众账号名称
toUin String 是 >= IOS 5.0 >= android 5.0
分享给指定的好友或群,如果存在这个参数,则不拉起好友选择界面 (针对分享给好友)
uinType String 是 >= IOS 5.0 >= android 5.0
分享给指定的好友或群的uin类型:
0:好友;
1:群 (针对分享给好友)

回调 callback(result)

独立版7.3 IOS分享到qzone没有回调,将在7.4修复
独立版7.3 Android玩吧分享到qq没有回调,正在调整,预计7.4修复
独立版7.3 Android分享到微信好友、微信朋友圈回调有两次,正在调整,预计7.4修复
名称 类型 必选 描述
result Object 是 返回对象

回调参数 result

名称 类型 必选 描述
retCode Number 是 返回码

返回码 retCode

  • 0 -- 用户点击发送,完成整个分享流程
  • 1 -- 用户点击取消,中断分享流程
  • 2 -- IOS端分享到微信或朋友圈时,手动取消分享将返回-2

H5应用设置方法

mqq.ui.setOnShareHandler(function(type){
    mqq.ui.shareMessage({
        title: '自定义的分享标题',
        desc: '自定义的分享描述',
        share_type: type,
        share_url: window.OPEN_DATA.shareurl,
        image_url: 'http://i.gtimg.cn/open/app_icon/05/58/35/77/1105583577_100_m.png',
        back: true
    },function(result){
        //result
    });
});

webviewCanScroll

>= IOS 5.8 >= Android 5.8

使用说明 : 禁止webview下拉回弹效果
注意:该接口直接使用`mqq.invoke`调用,不支持`mqq.ui.webviewCanScroll`

参数

名称 类型 必选 描述
params Object 是 参数

参数params

名称 类型 必选 描述
enable Boolean 是 禁止字段,false:禁止 true:开启

Example

mqq.invoke('ui', 'webviewCanScroll', {"enable" : false});

setPullDown

>= IOS 5.5 >= Android 5.5

使用说明 : 启用下拉刷新

参数

名称 类型 必选 描述
enable Boolean 是 启动标识, true 启动,false 不启动
success Boolean 是 业务方操作成功后,可以设置该参数,收起刷新界面
text Boolean 是 操作成功后提示文案
严重: enable参数和success参数不可同时使用,enable参数优先级高于success参数

Example

// 初始化启动下拉刷新的功能
mqq.invoke("ui", "setPullDown",{ enable: true });

// 监听`qbrowserPullDown`事件,当用户触发之后,即可开始处理业务方的逻辑
mqq.addEventListener("qbrowserPullDown", function () {
     // ... Your Code ...
    mqq.invoke("ui", "setPullDown",{ success: true , text: "刷新成功" });
});

showTips

>= IOS 4.7 >= android 4.7

使用说明 : 弹出文本的toast提示,2秒后消失

showTips(param)

  • param -- Object 必选
    • text -- String 必选,要提示的文字内容
    • iconMode -- Number 可选 >= IOS 5.7 >= android 5.7,icon类型,默认值2
      • 1 -- 勾选图标
      • 2 -- 空心警告图标

Example

mqq.ui.showTips({
    text: "hello",
    iconMode: 2
})

setTitleButtons

>= IOS 4.6 >= android 4.6

使用说明 : 配置webview顶部按钮的标题、点击回调等

setTitleButtons(param)

  • param -- Object
    • left -- Object 必选 左按钮
      • title -- String 必选 >= IOS 4.7.2 >= android 5.3 文案。
      • callback -- Function 必选 >= IOS 4.7.2 >= android 4.7 回调。
    • right -- Object 必选 右按钮
      • title -- String 必选 >= IOS 4.6 >= android 4.6 文案。
      • hidden -- Boolean 必选 >= IOS 4.7 >= android 4.7 是否隐藏右上角按钮。
      • iconID -- Number 必选 >= IOS 4.7 >= android 4.7 图标的本地资源ID(只支持内置的资源)。
        • 1 -- 编辑图标
        • 2 -- 删除图标
        • 3 -- 浏览器默认图标
        • 4 -- 分享图标
        • 5 -- 上传图标(有动画效果)
        • 7 -- 感叹号图标
      • callback -- Function 必选 回调。

Example

mqq.ui.setTitleButtons({
   left : {
       title : "返回",
       callback : function () {
           alert("点击左按钮")
       }
   },
   right : {
       title : "我的...",
       callback : function () {
           alert("点击右按钮")
       }
   }
})

setScrollState

>= IOS 6.0 >= Android 6.0

使用说明 : 是否禁用webview的上下拉功能

参数

名称 类型 必选 描述
enable Boolean 是 true 启用,false 禁用

Example

mqq.invoke("ui", "setScrollState",{ enable: false });

showActionSheet

>= IOS 5.5 >= Android 5.5

使用说明 : 弹出 ActionSheet

参数

名称 类型 必选 描述
title String 否 ActionSheet 标题
cancel String 否 指定取消按钮的标题
items Array 是 选项标题

返回值

名称 类型 必选 描述
type Number 是 0:点击普通item;1:取消按钮或空白区域
index Number 是 点击的item的下标,从0开始

Example

mqq.invoke("ui", "showActionSheet", {
    "title" : "title",
    "items" : ["item1", "item2"],
    "cancel" : "cancel"
}, function (evt) {
    alert(JSON.stringify(evt.data));
});

showDialog

>= IOS 5.5 >= Android 5.5

使用说明 : 弹出 Dialog

参数

名称 类型 必选 描述
title String 是 dialog标题
text String 是 dialog提示内容
needOkBtn Boolean 是 是否显示确认按钮
needCancelBtn Boolean 是 是否显示取消按钮
okBtnText String 是 确认按钮的文本(默认为“确定”)
cancelBtnText String 是 取消按钮的文本(默认为”“取消”)

返回值

名称 类型 必选 描述
button Number 是 指示用户点击的按钮, 0: 点击了确认按钮; 1: 点击了取消按钮
警告: needOkBtn和needCancelBtn至少有一个为true

Example

mqq.invoke("ui", "showDialog", {
    text: "是否删除?",
    needOkBtn: true,
    needCancelBtn: true,
    okBtnText: "删除",
    cancelBtnText: "取消"
},function(data){
    alert(JSON.stringify(data));
});

setOnAddShortcutHandler

>= android 6.6.0

使用说明 : 全屏模式增加一个生成桌面快捷方式的浮点按钮,点击之后由回调处理,Android 手Q6.6.0开始支持,IOS暂不支持。

参数

名称 类型 必选 描述
callback String 是 mqq.callback生成回调标记

Example

mqq.invoke('ui','setOnAddShortcutHandler', {
    'callback':mqq.callback(callbackfunction, false,true)
});

H5应用demo

window.mqq.invoke('ui','setOnAddShortcutHandler', {'callback':mqq.callback(function(){
    mqq.ui.addShortcut({
        action: 'web',
        title: 'H5应用',
        icon: 'http://i.gtimg.cn/open/app_icon/05/58/35/77/1105583577_100_m.png',
        url: window.OPEN_DATA.jumpurl,
        callback: function(ret){}
    });
}, false,true)});

addShortcut

>= IOS 4.5 >= android 5.8

使用说明 : 生成桌面快捷方式图标
注意 : IOS不支持回调

参数

名称 类型 必选 描述
params Object 是 调用参数

参数 params

名称 类型 必选 描述
action String 是 点击桌面快捷方式后,是用什么动作响应操作,目前只支持web打开方式。
title String 是 标题,缺省的话就取当前页面的title
icon String 是 快捷方式图标,可以缺省,使用手Q默认icon
url String 是 点击快捷方式跳转的目标url,不可缺省
callback(argus) Function 否 回调web端用到的关键字
extras Object|String 否 需要透传给web端的数据,可缺省

回调 callback(argus) IOS not support >= android 5.8

名称 类型 必选 描述
argus Object 是 返回值

返回值 argus

名称 类型 必选 描述
result Number 是 设置结果
resultData Object|String 是 extras透传的数据
message String 是 错误提示

设置结果 result

名称 类型 描述
0 Number 创建桌面快捷方式成功
-1 Number url字段为空
-2 Number 终端拿到的json格式解析出错
-3 Number icon字段下载到的数据为空,或者下载到的不是图片数据

Example

mqq.ui.addShortcut({
    action: 'web',
    title: 'H5小程序',
    icon: 'http://i.gtimg.cn/open/app_icon/05/58/35/77/1105583577_100_m.png',
    url: 'http://1105583577.urlshare.cn/?_proxy=1&_wv=16778245'
})

H5应用demo

window.mqq.invoke('ui','setOnAddShortcutHandler', {'callback':mqq.callback(function(){
    mqq.ui.addShortcut({
        action: 'web',
        title: 'H5应用',
        icon: 'http://i.gtimg.cn/open/app_icon/05/58/35/77/1105583577_100_m.png',
        url: window.OPEN_DATA.jumpurl,
        callback: function(ret){}
    });
}, false,true)});

playVideo

>= IOS 5.5 >= Android 5.5

使用说明 : 打开视频播放器,播放视频。

参数

名称 类型 必选 描述
url String 是 视频地址

Example

mqq.invoke("ui","playVideo",{
    url:"http://150.138.135.25/vcloud1032.tc.qq.com/1032_f8d2e0263d4ceecb444c69bb50592586.f20.mp4?vkey=AD6FCB53911BA7934FC971EB02DC8C705653A552B22C0E16FB20B59D1BF8D4FFEBD7A26B055BB4C9&sha=0f09a39f07bc2bff9280e7f56ce3b9c6a0f54d38"
},function(evt){
      JSON.stringify(evt);
});

closeWebViews

>= IOS 5.5 >= Android 5.5

使用说明 : 关闭全部webview

Example

mqq.invoke("ui","closeWebViews");

refreshTitle

>= IOS 5.5 >= Android 5.5

使用说明 : 更新title

Example

mqq.invoke("ui","refreshTitle",{},function(o){});

disableLongPress

>= IOS 5.8 >= android 5.8

使用说明 : 关闭长按功能,该接口需调用mqq.invoke进行调用,具体请参照例子
注意 : 该接口仅针对图片长按,对Android端长按页面出现的菜单无效

disableLongPress(params)

  • params -- Object 必选 调用参数
    • enable -- String 必选 关闭标识
      • true -- Boolean 关闭
      • false -- Boolean 开启

Example

mqq.invoke('ui', 'disableLongPress', {
    enable: true,
});

pageVisibility

>= IOS 4.7 >= android 4.7

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

pageVisibility(callback)

  • callback(result) -- Fcuntion 必选 回调
    • result -- Boolean 必选 页面可见返回 true,不可见返回 false

Example

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

setOnCloseHandler

>= IOS 4.7 >= android 4.7

使用说明 : 设置webview被关闭前的回调, 设置回调后将会替换原来的行为

setOnCloseHandler(callback)

  • callback -- Function 必选 回调

setRightDragToGoBackParams

>= IOS 5.3 android not support

使用说明 : 设置向右划后退触发的区域
重要:如果_wv参数禁止右划效果,那调用该接口将无法生效

setRightDragToGoBackParams(param)

  • param -- Object 必选
    • enable -- Boolean 必选 启动标识, true 启动,false 不启动
    • width -- Number 必选 右滑相应宽度, width 和 rect 参数 只设置一个即可,同时存在,rect优先
    • rect -- Object 必选 区域矩阵,例如:{x:0,y:0,width:60,height:500}

Example

mqq.ui.setRightDragToGoBackParams({
    enable: true,
    width: 60
});
mqq.ui.setRightDragToGoBackParams({
    enable: true,
    rect: {x:0,y:0,width:60,height:500}
});

setWebViewBehavior

>= IOS 4.7.2 >= android 5.1

使用说明 : 配置webview的行为

setWebViewBehavior(param)

  • param -- Object 必选
    • swipeBack -- Number 必选 >= IOS 4.7.2 android not support 是(1)否(0)支持右划关闭手势
    • actionButton -- Number 必选 >= IOS 4.7.2 >= android 5.1 是(1)否(0)显示右上角按钮
    • navBgColor -- Number 必选 >= IOS 5.0 >= android 5.1 背景颜色,例如:0xFF0000
    • navTextColor -- Number 必选 >= IOS 5.0 >= android 5.1 文字颜色,例如:0xFF0000
    • bottomBar -- Boolean 必选 >= IOS 5.7 >= android 5.7 控制底部导航条,默认false
    • keyboardDisplayRequiresUserAction -- Boolean 必选 >= IOS 5.1 android not support 设置为false允许js不经用户触发来弹起键盘

Example

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

showOfficalAccountDetail

>= IOS 4.5 >= android 4.6

使用说明 : 打开指定公众帐号的详情页

showOfficalAccountDetail(param)

  • param -- Object 必选
    • uin -- String 必选 公众帐号的uin
    • showAIO -- Boolean 必选 >= IOS 4.6 >= android 4.6 为true时, 如果用户关注了该公众帐号, 将打开该公众帐号的AIO; 如果未关注, 则打开详情页

showOfficialAccountProfile

>= IOS 4.5 >= android 4.6

使用说明 : 打开指定公众帐号资料卡,不支持打开AIO

showOfficialAccountProfile(param)

  • param -- Object 必选
    • uin -- Object 必选 公众帐号的uin

onFirstScreen

>= android 5.4.0

使用说明 : 监听页面首屏可见事件,获取页面首屏可见时间。(该事件仅触发一次,需要在事件触发前添加监听)

onFirstScreen(callback)

  • callback(result) -- Function 必选 回调函数
    • result -- Object 必选 返回的时间信息
      • code -- Number 必选 0表示获取成功,其他为错误
      • time -- Number 必选 首屏可见时间,单位为毫秒

Example

mqq.data.onFirstScreen(function (ret) {
    // {"code":0,"time":1050}
    console.log(JSON.stringify(ret));
});

Debug

detailLog

使用说明 : 让H5能打客户端log

参数

名称 类型 必选 描述
id string 是 业务ID
subid string 是 子业务ID
content string 是 log内容

Example

//让H5能记录客户端log,这样就能直接捞用户侧log了
mqq.invoke("debug","detailLog",{
    id:"mp",
    subid:"get001",
    content:"test detail log"
},function(e){
    console.log(e)
});

Event

addEventListener

使用说明 : 监听客户端事件。
该事件可能来自客户端业务逻辑,也可能是其他 WebView 使用 dispatchEvent 抛出的事件

addEventListener(eventName,handler)

  • eventName -- String 必选 事件名字
  • handler(data,source) -- Fcuntion 必选 事件的回调处理函数
    • data -- Object 必选 该事件传递的数据
    • source -- Object 必选 事件来源
      • url -- String 必选 抛出该事件的页面地址

Example

mqq.addEventListener("hiEvent", function(data, source){
    console.log("someone says hi", data, source);
});

dispatchEvent

>= IOS 5.0 >= Android 5.0

使用说明 : 分发事件接口。抛出一个事件给客户端或者其他 WebView,可以用于 WebView 间通信,或者通知客户端对特殊事件做处理(客户端需要做相应开发)

参数

名称 类型 必选 描述
eventName string 是 事件名字
options Object 是 事件参数
echo Boolean 否 当前webview是否能收到这个事件,默认为true
broadcast Boolean 否 是否广播模式给其他webview,默认为true
domains Array 是 指定能接收到事件的域名,默认只有同域的webview能接收,支持通配符,比如".qq.com"匹配所有qq.com和其子域、""匹配所有域名。注意当前webview是否能接收到事件只通过echo来控制,这个domains限制的是非当前webview。

Example

//1. WebView 1(www.qq.com) 监听 hello 事件
mqq.addEventListener("hello", function(data, source){
    console.log("someone says hi to WebView 1", data, source)
});
//2. WebView 2(www.tencent.com) 监听 hello 事件
mqq.addEventListener("hello", function(data, source){
    console.log("someone says hi to WebView 2", data, source)
});
//3. WebView 2 抛出 hello 事件
//不传配置参数,默认只派发给跟当前 WebView 相同域名的页面, 也就是只有 WebView 2能接收到该事件(WebView 1 接收不到事件,因为这两个 WebView 的域名不同域)
mqq.dispatchEvent("hello", {name: "abc", gender: 1});

//echo 为 false, 即使 WebView 2 的域名在 domains 里也不会收到事件通知, 该调用的结果是 WebView 1 将接收到该事件
mqq.dispatchEvent("hello", {name:"alloy", gender:1}, {
     //不把事件抛给自己
     echo: false,
     //广播事件给其他 WebView
     broadcast: true,
     //必须是这些域名的 WebView 才能收到事件
     domains: ["*.qq.com", "*.tencent.com"]
 });

 //echo 和 broadcast 都为 false, 此时不会有 WebView 会接收到事件通知, 但是客户端仍会收到事件, 仍然可以对该事件做处理, 具体逻辑可以每个业务自己处理
 mqq.dispatchEvent("hello", {name:"alloy", gender:1}, {
     echo: false,
     broadcast: false,
     domains: []
 });

removeEventListener

>= IOS 5.0 >= Android 5.0

使用说明 : 移除客户端事件的监听器.

参数

名称 类型 必选 描述
eventName string 是 事件名字
handler Function 否 事件的回调处理函数,不指定 handler 则删除所有该事件的监听器

Example

//移除客户端事件的监听器.
mqq.removeEventListener("hiEvent");

qbrowserTitleBarClick

>= IOS 5.2 >= android 5.2

使用说明 : 点击标题栏事件,监听后点击手机QQ标题栏就会收到通知,可以用来实现点击标题滚动到顶部的功能

mqq.addEventListener("qbrowserTitleBarClick",callback)

  • callback(data, source) -- Function 事件回调
    • data -- Object 事件参数
      • x -- Number 点击位置的屏幕x坐标
      • y -- Number 点击位置的屏幕y坐标
    • source -- Object 事件来源

Example

mqq.addEventListener("qbrowserTitleBarClick", function(data, source){
    console.log("Receive event: qbrowserTitleBarClick, data: " + JSON.stringify(data) + ", source: " + JSON.stringify(source));
});

qbrowserOptionsButtonClick

IOS not support >= android 5.2

使用说明 : Android 的物理菜单键的点击事件,点击后会收到通知

mqq.addEventListener("qbrowserOptionsButtonClick",callback)

  • callback(data, source) -- Function 事件回调
    • data -- Object 事件参数
    • source -- Object 事件来源

Example

mqq.addEventListener("qbrowserOptionsButtonClick", function(data, source){
    console.log("Receive event: qbrowserOptionsButtonClick, data: " + JSON.stringify(data) + ", source: " + JSON.stringify(source));
});

qbrowserPullDown

>= IOS 5.3 >= android 5.3

使用说明 : 页面下拉刷新时候会抛出该事件,主要用于与setPullDown交互,具体可参考setPullDown
注意 : 该事件可配合下拉刷新做交互,具体可参考`setPullDown`

mqq.addEventListener("qbrowserPullDown",callback)

  • callback() -- Function 事件回调

Example

mqq.addEventListener("qbrowserPullDown", function () {
    // ... Your Code ...
});

qbrowserVisibilityChange

>= IOS 5.3 >= android 5.3

使用说明 : 当webview可见性发生改变时将会抛出该事件
注意 : 该事件可配合下拉刷新做交互,具体可参考`setPullDown`

mqq.addEventListener("qbrowserVisibilityChange",callback)

  • callback(params) -- Function 事件回调
    • params -- Object 事件回调
      • hidden -- Boolean true:不可见,false:可见

Example

mqq.addEventListener("qbrowserVisibilityChange", function(e){
    console.log(e.hidden);
});

tenpay

pay

>= IOS 4.6.1 >= android 4.6.1

使用说明 : 唤起财付通支付界面

pay(param, callback)

  • param -- Object 必选
    • prepayId -- String 必选 调用财付通后台接口生成的订单号(名称由tokenId变更而来,tokenId参数名称仍可使用)
    • pubAcc -- String 必选 >= IOS 4.7 >= android 4.7 公众帐号uin,用于在支付成功后关注该公众帐号。
    • pubAccHint -- String 必选 >= IOS 4.7 >= android 4.7 公众帐号关注提示语,用于显示在支付成功页面。
    • appInfo -- String 必选 标记业务及渠道,用来统计各业务KPI完成度,注意:字段由三部分组成,
      • appid#XXXXXXXXX|bargainor_id#XXXXXXXX|channel#XXXXX -- 注:由于url字段包含"=",所以不在appInfo字段使用"=",而改用"#"代替
        • 第一部分:应用唯一id:appid请咨询SNG增值渠道部分配唯一的appid;
        • 第二部分:商户号:bargainor_id
        • 第三部分:渠道:channel,目前分配值:
        • wallet:钱包首页商城
        • account:应用生活服务帐号
        • dongtai:动态
        • qun:群
        • huodong:热门活动
        • aio:聊天窗口
        • banner:手Qbanner
        • gdt:广点通
        • shareurl:分享链接
        • qrcode:扫码
        • wallet_account:QQ钱包官号
        • personalstore:个性装扮
        • qbjx:钱包精选
        • other:其它 -(其它发现无对应渠道的情况,请咨询SNG增值渠道部分配新渠道标识)
  • callback(result, resultCode) -- Function 必选 支付成功/失败的回调
    • result -- Object 必选 支付成功/失败的回调
      • retmsg -- String 必选 表示调用结果信息字符串。成功返回时为空串。出错时,返回出错信息
      • data -- Object 可选 当resultCode=0时,有返回data对象
        • transaction_id -- string 必选 财付通交易单号
        • pay_time -- string 必选 交易时间
        • total_fee -- string 必选 订单总金额(单位为分)
        • callback_url -- string 必选 商户提供的回调url地址(HTML5方式调用适用,其它情形为空)
        • sp_data -- string 必选 返回给商户的信息,商户前端可解析校验订单支付结果。
    • resultCode -- Number 必选 错误码
      • -1 -- 未知错误
      • 0 -- 发货成功
      • 1 -- 下订单失败
      • 2 -- 支付失败
      • 3 -- 发货失败
      • 4 -- 网络错误
      • 5 -- 登录失败或无效
      • 6 -- 用户取消
      • 7 -- 用户关闭IAP支付

Example

mqq.tenpay.pay({
    prepayId: "xxxx", //20160901名称由tokenId变更而来,老的tokenId参数名称仍可使用
    pubAcc: "xxxx",
    pubAccHint: "xxxx"
});
注意 : 支付成功的回调在 Android 4.6.2 之前的实现有 Bug,4.6.0之前从aio打开的webview会没有回调,4.6.1在生活优惠的webview会没有回调。需要页面兼容一下,给个提示框让用户点击,从后台查支付状态。最新版本已经修复。

Qzone

H5PayCallBack

使用说明 : h5支付成功回调通知客户端

参数

名称 类型 必选 描述
status String 是 状态 success(error不调用即可)
vipType String 是 开通类型

参数取值示例

功能 vipType
普通黄钻 "normalVip"
豪华黄钻 "highVip"
星钻 "starVip"

Example

mqq.invoke("Qzone", "H5PayCallBack",{
    status:"success",
    vipType:"normalVip"
});