>= 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
}
>= IOS 5.5
>= Android 5.5
使用说明 : 检测客户端是否支持API
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
APIName | string | 是 | API名字,如mqq.ui.openUrl |
返回值
类型 | 描述 |
---|---|
Boolean | 说明: 是否支持API |
Example
if(mqq.support("mqq.ui.topicSend")) {
} else {
}
>= 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('复制失败');
}
});
>= 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));
});
>= IOS 5.5
>= Android 5.5
使用说明 : 获取Performance数据,得到webveiw的各个时间点
警告: 该接口只能在onload()之后调用
返回值
Example
mqq.invoke('data', 'getPerformance',function(evt){
alert(JSON.stringify(evt.data));
});
>= IOS 5.5
>= Android 5.5
使用说明 : webview数据存储读
返回值
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);
});
>= IOS 5.5
>= Android 5.5
使用说明 : webview数据存储写
返回值
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);
});
>= 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);
});
>= IOS 4.5
>= android 4.6
使用说明 : 获取网络类型
getNetworkType(callback)
callback(result)
-- Function
回调result
-- Number
结果-1
-- Unknown未知类型网络0
-- NotReachable1
-- ReachableViaWiFi2
-- ReachableVia2G3
-- ReachableVia3G4
-- 4GExample
mqq.device.getNetworkType(function(result){
alert(result);
});
>= IOS 5.5
>= Android 5.5
使用说明 : 获取细化的具体网络类型
返回值
type
-- Bumber
网络类型,和原本的getNetworkType接口一样-1
-- 未知类型网络0
-- NotReachable1
-- ReachableViaWiFi2
-- ReachableVia2G3
-- ReachableVia3G4
-- 4Gradio
-- String
细化的网络类型Example
mqq.invoke('device', 'getNetworkInfo',function(data){
console.log(data);
});
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
必选
当前状态的文字描述
>= 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);
});
>= IOS 5.5
>= Android 5.5
使用说明 : 获取内存信息
返回值
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
totalMem | Number | 是 | 总内存大小 |
idleMem | Number | 是 | 未使用内存大小 |
Example
mqq.invoke('device', 'getMemInfo', function(data){
console.log(data);
});
>= 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);
});
>= IOS 6.0
>= Android 6.0
使用说明 : 获取CPU核数信息
返回值
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
count | Number | 是 | 总核数 |
Example
mqq.invoke('device', 'getCPUCoreNum', function(data){
console.log(data);
});
>= 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));
});
>= 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"
});
手机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);
});
>= 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
});
>= 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);
});
>= 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);
});
>= 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);
});
>= 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
});
>= 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));
});
>= 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));
});
使用说明 : 开始监听麦克风音量
警告:这个接口是静默的,调用后用户无感知,最好 UI 给予用户提示页面将监听麦克风音量变化
返回值
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
ret | Boolean | 是 | 是否成功启动传感器 |
volume | Number | 是 | 音量大小(db),回调频率10次/秒 |
Example
mqq.invoke("sensor", "startListen", function (evt) {
alert(JSON.stringify(evt.data));
});
使用说明 : 停止监听麦克风音量大小
Example
mqq.invoke("sensor", "stopListen", function (){
alert(“停止监听”);
});
>= 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);
});
>= IOS 5.5
>= Android 5.5
使用说明 : 获取地理位置
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
allowCacheTime | Number | 否 | 读取多少时间内的缓存定位数据,以秒为单位 |
返回值
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
latitude | Number | 是 | 纬度 |
longtitude | Number | 是 | 经度 |
Example
mqq.invoke("sensor", "getRealLoaction", function (eva) {
alert(JSON.stringify(evt.data));
});
>= IOS 5.5
>= Android 5.5
使用说明 : 让手机震动一下
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
time | Number | 否 | 单位是毫秒,android可以指定震动时间,IOS的震动时间是系统管理的,不能指定 |
Example
mqq.invoke("sensor", "vibrate",{time:1000});
>= 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);
});
>= IOS 5.5
>= Android 5.5
使用说明 : 关闭重力感应
Example
mqq.invoke('sensor', 'stopAccelerometer');
>= IOS 5.5
>= Android 5.5
使用说明 : 开启监听罗盘
返回值
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
ret | Boolean | 是 | 是否成功启动传感器 |
direction | Number | 是 | 面对的方向度数,频率50次/秒 |
Example
mqq.invoke('sensor', 'startCompass', function(data){
console.log(data);
});
>= IOS 5.5
>= Android 5.5
使用说明 : 关闭监听罗盘
Example
mqq.invoke('sensor', 'stopCompass');
界面相关接口
>= 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
});
>= IOS 4.5
>= android 4.6
使用说明 : 关闭当前webview
Example
mqq.ui.popBack();
>= IOS 5.5
>= Android 5.5
使用说明 : 设置浏览器左按钮
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
title | String | 是 | 设置左按钮文案 |
Example
mqq.invoke("ui", "setLeftButton",{
title:"返回"
},function(){
alert("点击了返回按钮");
});
>= IOS 5.5
>= Android 5.5
使用说明 : 显示分享菜单
Example
mqq.ui.showShareMenu();
>=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
});
});
结合版
>= 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
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
});
});
>= 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});
>= 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: "刷新成功" });
});
>= 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
})
>= 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("点击右按钮")
}
}
})
>= IOS 6.0
>= Android 6.0
使用说明 : 是否禁用webview的上下拉功能
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
enable | Boolean | 是 | true 启用,false 禁用 |
Example
mqq.invoke("ui", "setScrollState",{ enable: false });
>= 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));
});
>= 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));
});
>= 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)});
>= 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)});
>= 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);
});
>= IOS 5.5
>= Android 5.5
使用说明 : 关闭全部webview
Example
mqq.invoke("ui","closeWebViews");
>= IOS 5.5
>= Android 5.5
使用说明 : 更新title
Example
mqq.invoke("ui","refreshTitle",{},function(o){});
>= 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,
});
>= IOS 4.7
>= android 4.7
使用说明 : 查询页面的可见性。当当前可见view/activity不是本页面,或应用退到后台时,此接口返回false,否则返回true。
pageVisibility(callback)
callback(result)
-- Fcuntion
必选
回调result
-- Boolean
必选
页面可见返回 true,不可见返回 falseExample
mqq.ui.pageVisibility(function(r){
console.log("visible ?", r);
});
>= IOS 4.7
>= android 4.7
使用说明 : 设置webview被关闭前的回调, 设置回调后将会替换原来的行为
setOnCloseHandler(callback)
callback
-- Function
必选
回调
>= 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}
});
>= 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
背景颜色,例如:0xFF0000navTextColor
-- Number
必选
>= IOS 5.0
>= android 5.1
文字颜色,例如:0xFF0000bottomBar
-- Boolean
必选
>= IOS 5.7
>= android 5.7
控制底部导航条,默认falsekeyboardDisplayRequiresUserAction
-- 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});
>= IOS 4.5
>= android 4.6
使用说明 : 打开指定公众帐号的详情页
showOfficalAccountDetail(param)
param
-- Object
必选
uin
-- String
必选
公众帐号的uinshowAIO
-- Boolean
必选
>= IOS 4.6
>= android 4.6
为true时, 如果用户关注了该公众帐号, 将打开该公众帐号的AIO; 如果未关注, 则打开详情页
>= IOS 4.5
>= android 4.6
使用说明 : 打开指定公众帐号资料卡,不支持打开AIO
showOfficialAccountProfile(param)
param
-- Object
必选
uin
-- Object
必选
公众帐号的uin
>= 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));
});
使用说明 : 让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)
});
使用说明 : 监听客户端事件。
该事件可能来自客户端业务逻辑,也可能是其他 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);
});
>= 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: []
});
>= IOS 5.0
>= Android 5.0
使用说明 : 移除客户端事件的监听器.
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
eventName | string | 是 | 事件名字 |
handler | Function | 否 | 事件的回调处理函数,不指定 handler 则删除所有该事件的监听器 |
Example
//移除客户端事件的监听器.
mqq.removeEventListener("hiEvent");
>= 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));
});
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));
});
>= IOS 5.3
>= android 5.3
使用说明 : 页面下拉刷新时候会抛出该事件,主要用于与setPullDown交互,具体可参考setPullDown
注意 : 该事件可配合下拉刷新做交互,具体可参考`setPullDown`
mqq.addEventListener("qbrowserPullDown",callback)
callback()
-- Function
事件回调Example
mqq.addEventListener("qbrowserPullDown", function () {
// ... Your Code ...
});
>= 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);
});
>= 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字段使用"=",而改用"#"代替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会没有回调。需要页面兼容一下,给个提示框让用户点击,从后台查支付状态。最新版本已经修复。
使用说明 : h5支付成功回调通知客户端
参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
status | String | 是 | 状态 success(error不调用即可) |
vipType | String | 是 | 开通类型 |
参数取值示例
功能 | vipType |
---|---|
普通黄钻 | "normalVip" |
豪华黄钻 | "highVip" |
星钻 | "starVip" |
Example
mqq.invoke("Qzone", "H5PayCallBack",{
status:"success",
vipType:"normalVip"
});