>= IOS 4.2
>= Android 4.2
使用说明 : 用于生成回调名字,跟着 invoke 的参数传给客户端,客户端执行回调时,根据该回调名字找到相应的回调处理函数并执行
警告: 如果在 UI 相关接口的回调中调用 alert 等 UI 接口,会导致 WebView 假死,只能关进程处理
严重: 如果在接口 A 的回调中继续调用接口 B,接口 B 的调用可能会无效亦或者返回结果不正确
var callbackName = mqq.callback(function(type, index){
console.log("type: " + type + ", index: " + index);
mqq.invoke("ui", "showActionSheet", {
"title" : "title",
"items" : ["item1", "item2"],
"cancel" : "cancel",
"close" : "close",
"onclick": callbackName
support
>= IOS 5.5
>= Android 5.5
使用说明 : 检测客户端是否支持API
mqq.invoke('data', 'getPageLoadStamp',function(evt){
alert(JSON.stringify(evt.data));
>= 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数据
var obj = {
callid:200,
host:"qzs.qq.com",
path:"test",
key:"key1",
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 描述:数据对象如下var obj = {
callid:200,
host:"qzs.qq.com",
path:"test",
key:"key1",
data:"test Data"
mqq.invoke("data","writeH5Data",obj,function(re){
console.log(re);
Device
getDeviceInfo
>= IOS 5.5
>= Android 5.5
使用说明 : 获取设备信息
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 目录,相机程序会识别出来)
mqq.invoke("media", "saveImage",{
content : "http://pub.idqqimg.com/qqmobile/pic/b1.jpg"
},function(data){
console.log(data);
checkAppInstalled
>= IOS 5.5
>= Android 5.5
使用说明 : 获取本地指定应用的本版号
警告:IOS只能获取当前应用的版本号,其它应用的无法获取
var value = "mqq";
mqq.invoke('app', 'checkAppInstalled', { "name" : value }, function(result){
alert("mobileqq version: " + result);
isAppInstalled
>= IOS 5.5
>= Android 5.5
使用说明 : 检测app是否安装
var value = "mqq";
mqq.invoke('app', 'isAppInstalled', { "name" : value }, function(result){
alert("mobileqq is install: " + result);
launchApp
>= IOS 5.5
>= Android 5.5
使用说明 : 打开App
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只能获取当前应用的版本号,其它应用的无法获取
mqq.invoke("app","checkAppInstalledBatch",{
"name":"com.tencent.mobileqq|com.qzone"
},function(evt){
alert(JSON.stringify(evt.data));
Sensor
startListen
使用说明 : 开始监听麦克风音量
警告:这个接口是静默的,调用后用户无感知,最好 UI 给予用户提示页面将监听麦克风音量变化
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(也就是火星坐标)。
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
使用说明 : 获取地理位置
mqq.invoke("sensor", "getRealLoaction", function (eva) {
alert(JSON.stringify(evt.data));
vibrate
>= IOS 5.5
>= Android 5.5
使用说明 : 让手机震动一下
>=IOS 4.7.2
>=android 4.7.2
使用说明:设置web页面分享的监听事件。用户点击右上角的弹出菜单后,点击了分享时会通知页面,此时需要调用 shareMessage 主动发起分享(系统默认的分享行为不再执行)
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){
shareMessage
结合版
>= IOS 4.7.2 >=
android 4.7.2
独立版
>= IOS 7.3 >=
android 7.3
使用说明 : 调用客户端的分享接口,分享内容给好友/群/空间/微信,调用后会弹出联系人选择列表
建议在mqq.ui.setOnShareHandler的回调中配合使用
String
消息左侧缩略图url。图片推荐使用正方形,宽高不够时等比例撑满,不会变形。原 imageUrl 参数,可以继续使用 imageUrl。注意:图片最小需要200 * 200,否则分享到Qzone时会被Qzone过滤掉。
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
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:群 (针对分享给好友)
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){
>= IOS 5.8
>= Android 5.8
使用说明 : 禁止webview下拉回弹效果
注意:该接口直接使用`mqq.invoke`调用,不支持`mqq.ui.webviewCanScroll`
mqq.invoke("ui", "setPullDown",{ enable: true });
mqq.addEventListener("qbrowserPullDown", function () {
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
-- 空心警告图标
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
必选 回调。
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
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不支持回调
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
使用说明 : 打开视频播放器,播放视频。
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
必选
关闭标识使用说明 : 查询页面的可见性。当当前可见view/activity不是本页面,或应用退到后台时,此接口返回false,否则返回true。
pageVisibility(callback)
callback(result)
-- Fcuntion
必选
回调
result
-- Boolean
必选
页面可见返回 true,不可见返回 false
param
-- Object
必选
使用说明 : 配置webview的行为
setWebViewBehavior(param)
param
-- Object
必选
使用说明 : 打开指定公众帐号的详情页
showOfficalAccountDetail(param)
param
-- Object
必选
使用说明 : 打开指定公众帐号资料卡,不支持打开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
必选
首屏可见时间,单位为毫秒
mqq.data.onFirstScreen(function (ret) {
console.log(JSON.stringify(ret));
Debug
detailLog
使用说明 : 让H5能打客户端log
eventName
-- String
必选
事件名字
handler(data,source)
-- Fcuntion
必选
事件的回调处理函数
data
-- Object
必选
该事件传递的数据
source
-- Object
必选
事件来源
url
-- String
必选
抛出该事件的页面地址
mqq.addEventListener("hiEvent", function(data, source){
console.log("someone says hi", data, source);
dispatchEvent
>= IOS 5.0
>= Android 5.0
使用说明 : 分发事件接口。抛出一个事件给客户端或者其他 WebView,可以用于 WebView 间通信,或者通知客户端对特殊事件做处理(客户端需要做相应开发)
mqq.addEventListener("hello", function(data, source){
console.log("someone says hi to WebView 1", data, source)
mqq.addEventListener("hello", function(data, source){
console.log("someone says hi to WebView 2", data, source)
mqq.dispatchEvent("hello", {name: "abc", gender: 1});
mqq.dispatchEvent("hello", {name:"alloy", gender:1}, {
echo: false,
broadcast: true,
domains: ["*.qq.com", "*.tencent.com"]
mqq.dispatchEvent("hello", {name:"alloy", gender:1}, {
echo: false,
broadcast: false,
domains: []
removeEventListener
>= IOS 5.0
>= Android 5.0
使用说明 : 移除客户端事件的监听器.
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
事件来源
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 () {
qbrowserVisibilityChange
>= IOS 5.3
>= android 5.3
使用说明 : 当webview可见性发生改变时将会抛出该事件
注意 : 该事件可配合下拉刷新做交互,具体可参考`setPullDown`
mqq.addEventListener("qbrowserVisibilityChange",callback)
callback(params)
-- Function
事件回调
params
-- Object
事件回调
hidden
-- Boolean
true:不可见,false:可见
mqq.addEventListener("qbrowserVisibilityChange", function(e){
console.log(e.hidden);
tenpay
>= 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
必选
返回给商户的信息,商户前端可解析校验订单支付结果。
mqq.tenpay.pay({
prepayId: "xxxx",
pubAcc: "xxxx",
pubAccHint: "xxxx"
注意 : 支付成功的回调在 Android 4.6.2 之前的实现有 Bug,4.6.0之前从aio打开的webview会没有回调,4.6.1在生活优惠的webview会没有回调。需要页面兼容一下,给个提示框让用户点击,从后台查支付状态。最新版本已经修复。
Qzone
H5PayCallBack
使用说明 : h5支付成功回调通知客户端