微博开放平台
微连接
移动应用
网站接入
电商服务商
电商商家
数据服务
数据服务
合作伙伴
微博支付
轻应用
粉丝服务
文档
推广
我的应用
登录
weibo
开发文档
首页
平台政策与指引
概述
平台公约
新手指南
开发者协议
应用运营管理规范
微连接分级管理办法
应用审核产品指南
应用安全开发注意事项
平台应用设计规范
微服务接入指南
微博登录接入
用微博帐号登录
授权机制
移动应用接入
移动应用介绍
移动应用SSO授权
微博Deep Link
媒体接入平台
头条文章开放接口
视频上传开放接口
电商接入平台
电商服务商接入
电商商家端接入
电商平台能力接口
粉丝服务平台
粉丝服务平台
新手接入指南
微信开发者迁移指南
接收消息
发送消息
自定义菜单
用户管理
生成带参数的二维码
Fans Service Platform
商业接口
商业数据接入指南
订阅服务手册(中文版)
订阅服务手册(英文版)
商业接口-REST API
商业数据常见问题
网站接入
网站接入介绍
微博API
微博API
接口访问频次权限
资源下载
SDK
微博标识下载
常见问题
联系我们
工具箱
链入页面
链出更改
特殊页面
查看源代码
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=使用条件= 微博 Android 与 iPhone 官方客户端 4.3.0 以上版本的内置浏览器。 =初始化事件= 网页加载完成时,会向 `document` 发送 `WeiboJSBridgeReady` 消息,网页需要监听此消息,收到后再访问 JSBridge。 <pre> document.addEventListener('WeiboJSBridgeReady', function () { // do something. }); </pre> ===主动触发初始化=== 有时网页加载速度较慢,可能在 `DOMContentLoaded` 之后很久 bridge 才会注入。如果对速度要求很高,可以在 `DOMContentLoaded` 时主动告诉 native 来注入 bridge,具体方式如下: * • 等待 `DOMContentLoaded` 事件(`$(document).ready()`) * • 生成与 native 通信的 `iframe` 标签。 * • 注意将 `iframe` 的 `id` 设为 `__WeiboJSInvokeIframe` 可以避免 bridge 注入时重复生成。 * • 将 `iframe` 的 `src` 设为 `sinaweibo://bridge_initialize` * • 等待 `WeiboJSBridgeReady` 事件 <pre> document.addEventListener("DOMContentLoaded", function(event) { if (typeof window.WeiboJSBridge === 'undefined') { var invokeIframe = document.createElement('iframe'); invokeIframe.id = '__WeiboJSInvokeIframe'; invokeIframe.style.display = 'none'; document.documentElement.appendChild(invokeIframe); invokeIframe.src = 'sinaweibo://bridge_initialize'; } }); </pre> =调用Bridge的Action= 通过 `window.WeiboJSBridge` 的 `invoke` 方法来调用 bridge 的 action。 例如: <pre> WeiboJSBridge.invoke("getNetworkType", {"param" : "value"}, function (params, success, code) { if (success) { document.write('网络状态是' + params.network_type); } else { if (code == WeiboJSBridge.STATUS_CODE.NO_RESULT) { // do something. } } }); </pre> 第一个参数为要调用的 action,第二个为 参数列表,第三个为回调函数。 或者可以为成功失败提供不同的回调方法,如: <pre> WeiboJSBridge.invoke('getLocation', {}, { success: function(params) { resultDiv.innerHTML = params.lat + ', ' + params.long; }, fail: function(params, code) { var reason; if (code == WeiboJSBridge.STATUS_CODE.SERVICE_FORBIDDEN) { reason = '定位服务未启用'; } resultDiv.innerHTML = '定位失败, ' + reason; }, final: function(params) { alert('定位结束!'); }, }); </pre> =Action 列表= ===openImage 查看大图=== - 参数列表: - `url`: 当前选中的图片src; - `urls`: 当前页面中的所有图片src,用于支持横滑查看 - 返回值:无 - 错误码: - `MISSING_PARAMS`: `url` 与 `urls` 至少需要传递一个 ===getNetworkType 获取网络状态=== - 参数列表:无 - 返回值:`{"network_type": "wwan"}`,`wwan` 代表 2G 或 3G, `wifi` 代表 WIFI, `fail` 代表无网络 ===scanQRCode 扫描二维码=== - 参数列表:无 - 返回值:`{"result": "http://weibo.com"}` - 错误码: - `USER_CANCELLED`: 用户取消了扫描 - `SERVICE_FORBIDDEN`: 设备没有摄像头或用户不允许使用摄像头 ===pickImage 获取照片=== - 参数列表: - `source`: `camera` 为拍照,其他为从相册选择 - 返回值:`{"base64": "9sa1..."}` - 错误码: - `USER_CANCELLED`: 用户取消了选图 - `SERVICE_FORBIDDEN`: 设备没有摄像头或用户不允许选图 ===getLocation 定位=== - 参数列表:无 - 返回值:`{"lat": 100, "long": 100}` - 错误码: - `SERVICE_FORBIDDEN`: 定位服务不可用 - `NO_RESULT`: 获取位置失败 ===queryPreloadCache 获取预加载内容=== - 使用条件: - 仅 weibo.com、weibo.cn 及其子域名可以调用 - 参数列表: - `cid`: 内容的id,必需 - 返回值:`{"result": "{'key': 'value'}"}`,result为内容预加载接口返回值 - 错误码: - `MISSING_PARAMS`: 未传递 `cid` 参数 - `NO_RESULT`: 指定缓存不存在 - `INTERNAL_ERROR`: 缓存读取失败 - `ILLEGAL_ACCESS`: 调用域名无权限访问 ===deletePreloadCache 删除预加载缓存=== - 使用条件: - 仅 weibo.com、weibo.cn 及其子域名可以调用 - 参数列表: - `cid`: 内容的id,必需 - 返回值:无 - 错误码: - `MISSING_PARAMS`: 未传递 `cid` 参数 - `INTERNAL_ERROR`: 文件删除失败(不包括缓存不存在) - `ILLEGAL_ACCESS`: 调用域名无权限访问 ===setBrowserTitle 设置顶导标题=== - 参数列表: - `title`: 新标题,必需 - 返回值:无 - 备注:通过此方法设置的标题优先级最高 - 错误码: - `MISSING_PARAMS`: 未传递 `title` 参数 =响应 Event= 有时 native 会给网页发送一些通知,网页可以选择性接收。 <pre> WeiboJSBridge.on('networkTypeChanged', function(params){ document.write('网络状态已变为:' + params.network_type); }); </pre> =Event 列表= ===networkTypeChanged 网络状态改变=== - 使用条件: - 目前仅iPhone支持 - 参数列表: - `network_type`: 改变后的状态,`wwan` 或 `wifi` 或 `fail` =Status Code 列表= 状态码会在 action 的回调中提供 <pre> OK: 操作成功 MISSING_PARAMS: 缺少必须的参数 ILLEGAL_ACCESS: 非法调用 INTERNAL_ERROR: 客户端内部处理错误 ACTION_NOT_FOUND: 客户端未实现此 action NO_RESULT: 客户端没有获取到结果 USER_CANCELLED: 用户取消了操作 SERVICE_FORBIDDEN: 相关服务未启用或被禁止 (如定位服务,相册权限) </pre> 网页通过比对回调的code值和以上值进行处理 <pre> if (code == WeiboJSBridge.STATUS_CODE.NO_RESULT) { // 客户端没有获取到结果 } </pre>
返回到
Page轻应用开发文档-微博客户端JSAPI
。
反馈
分享
顶部