手机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"
});