Web化能力介绍
业务价值
web化能力实现了一套代码多端使用,不仅能在bilibili App上应用,也可以在微信,QQ,手机浏览器等webview里进行h5页面展示,很好的起到了引流的作用、优化了SEO。
小程序项目不仅可以在本地通过命令npm run dev进行h5调试,内部业务方也可以通过 rider 构建发布(构建方式选择 small-app-web-build)h5页面。
拿 demo小程序 做示例,下面是APP里打开小程序和浏览器里打开h5的截图:

小程序

H5
但是,由于环境的差异,h5上部分bl api实现、返回结果等与小程序有所不同,需要业务方做些兼容。
Web API与小程序 API的差异
bl.navigateToMiniProgram
1: 仅支持在真机内拉起app内小程序
2: 必填参数目标小程序appId未填写或参数格式不是 String、用户点击取消、未安装app均进错误回调
3: 无 success 回调
bl.getSystemInfo
success返回参数说明
Object res
| 属性 | 类型 | 说明 | 值 |
|---|---|---|---|
| brand | string | 手机品牌 | 空 |
| model | string | 手机型号 | 空 |
| pixelRatio | number | 设备像素比 | 和小程序一致 |
| screenWidth | number | 屏幕宽度 | 和小程序一致 |
| screenHeight | number | 屏幕高度 | 和小程序一致 |
| windowWidth | number | 可使用窗口宽度 | 和小程序一致 |
| windowHeight | number | 可使用窗口高度 | 和小程序一致 |
| statusBarHeight | number | 状态栏的高度 | NaN |
| language | string | app设置的语言 | 空 |
| version | string | app版本号 | 空 |
| system | string | 操作系统版本 | 空 |
| platform | string | 客户端平台 | web |
| fontSizeSetting | number | 用户字体大小设置。以“我-设置-通用-字体大小”中的设置为准,单位:px | 空 |
| SDKVersion | string | 客户端基础库版本 | 空 |
bl.getSystemInfoSync
bl.getSystemInfo 同歩方法
bl.downloadFile
1: 参数url对应下载资源无大小50M以内限制;
2: 无 success 和 fail 回调,即无返回参数 tempFilePath (临时文件路径)、statusCode (开发者服务器返回的 HTTP 状态码)和 downloadTask 对象。
参数说明
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| url | string | 是 |
bl.startPullDownRefresh
1: 不支持下滑手势触发调用接口
2: 调用接口后可触发下拉刷新动画,再调用bl.stopPullDownRefre完成下拉刷新
3: 目前下拉动画 icon 为 loading
4: 无 fail 回调
bl.stopPullDownRefresh
无 success 和 fail 回调
bl.setStorage
无数据存储最大为10MB限制
bl.setStorageSync
bl.setStorage 同步方法
bl.getLocation
1: 入参 type 仅支持 gcj02 类型
2: success返回参数,当返回参数类型为 Number 且无值返回时,返回 NaN
参数说明
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| type | string | gcj02 | 否 | |
| altitude | boolean | false | 否 | 传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度 |
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 |
bl.share
1: 与现有小程序分享界面不同
2: 仅支持分享至新浪微博、QQ空间、百度贴吧、QQ好友
3: 点击相应分享渠道,若需登录,仅支持网页版登陆,不会拉起相应app
4: 无 success 和 fail 回调
参数说明
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| title | string | 是 | 分享内容的标题 | |
| decs | string | 是 | 分享内容的介绍 | |
| imgUrl | string | 是 | 分享内容的图片 | |
| url | string | 是 | 分享内容的跳转链接 |
bl.authorize
参数说明
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| scope | string | 是 | 需要获取权限的scope | |
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 |
scope列表
| scope | 说明 |
|---|---|
| scope.userInfo | 是否授权用户信息 |
| scope.userLocation | 是否授权地理位置 |
| scope.address | 是否授权通讯地址 |
bl.openSetting
所有 authSetting 按钮均为打开状态,切不可关闭
success返回参数说明
Object res
| 属性 | 类型 | 说明 |
|---|---|---|
| authSetting | object | 用户授权结果 |
authSetting 的结构
| 属性 | 说明 |
|---|---|
| scope.userInfo | 是否授权用户信息 |
| scope.userLocation | 是否授权地理位置 |
| scope.address | 是否授权通讯地址 |
bl.getAccountInfo
返回参数只有小程序 appId,无 VappId
success 返回参数
Object res
| 属性 | 类型 | 说明 |
|---|---|---|
| miniProgram | object | 小程序帐号信息 |
miniProgram 的结构
| 属性 | 类型 | 说明 |
|---|---|---|
| appId | string | 小程序 appId |
bl.getAccountInfoSync
bl.getAccountInfo 同步方法
bl.chooseAddress
无 success 和 fail 回调
bl.saveImageToPhotosAlbum
暂不支持
bl.chooseImage
暂不支持
bl.setEnableDebug
暂不支持
bl.getMenuButtonBoundingClientRect
暂不支持
文件和媒体音频相关接口,暂不支持
Web API与小程序 内部API的差异
bl.internal.navigateToSmallApp
1: 仅支持在真机内拉起app内小程序
2: 必填参数目标小程序appId未填写或参数格式不是 String、用户点击取消、未安装bilibili app均进错误回调
3: 无 success 回调
bl.internal.share
1: 与现有小程序分享界面不同
2: 仅支持分享至新浪微博、QQ空间、百度贴吧、QQ好友
3: 点击相应分享渠道,若需登录,仅支持网页版登陆,不会拉起相应app
4: 无 success 和 fail 回调
bl.internal.uploadImage
暂不支持