-
Notifications
You must be signed in to change notification settings - Fork 507
从协议启动哔哩
应用从 2.2205.1.0 开始支持协议启动。协议名为 richasy-bili
。
你可以把协议调用简单理解为通过一个链接来唤起应用,也就是应用开发领域所说的 deep link
。
以网址举例,一个网址 https://bilibili.com?from=app
,其中 https
就是协议名称,bilibili.com
我们通常称其为域名,问号后面跟着的 from=app
我们称其为查询参数。协议
+ 域名
+ 查询参数
就构成了我们常见的链接形式。
所以对于哔哩的协议启动也是同理,只不过协议就不是 https
了,而是我们自己定义的 richasy-bili
,域名也用来区分不同的功能,查询参数用来指定具体的内容。
所以如果你想要播放 aid 为 170001 的视频,你可以使用这样的协议调用链接:richasy-bili://play?video=170001
协议调用能做的事情和 从命令行启动哔哩 类似,参数也大致相仿。
域名 | 说明 |
---|---|
play | 表示播放视频,可以用查询参数指定具体要播放的内容,支持视频、PGC和直播 |
find | 表示搜索内容,用查询参数指定关键词 |
navigate | 表示页面导航,用查询参数指定具体导航的页面 |
具体播放的内容由查询参数指定,比如播放 aid 为 170001 的视频,协议链接为 richasy-bili://play?video=170001
参数名 | 说明 | 值 | 示例 |
---|---|---|---|
video | 播放视频内容 | 支持 avid 和 bvid |
|
season | 播放 PGC 内容(动漫/电影/电视剧等) | 剧集 Id,链接中通常以 ss 作为前缀,比如 ss123456 ,和 episode 搭配使用可以指定具体播放哪一集 |
richasy-bili://play?season=39459 |
episode | 播放 PGC 内容(动漫/电影/电视剧等) | 单集 Id,链接中通常以 ep 作为前缀,比如 ep123456
|
richasy-bili://play?episode=423535 |
live | 播放直播 | 直播间 Id | richasy-bili://play?live=139 |
除了指定具体的播放内容,你还可以通过协议指定播放这些内容时播放器的状态(默认/全窗口/全屏/小窗置顶)
参数名 | 说明 | 值 | 示例 |
---|---|---|---|
mode | 指定播放模式,如需默认就不写该参数 | 可选值为 mini , screen 和 window ,分别表示 小窗模式, 全屏模式 和 全窗口模式 |
richasy-bili://play?video=170001&mode=window |
搜索只需指定关键词即可,形如 richasy-bili://find?keyword=123
,但需要注意的时,对于链接所不支持的特殊字符,需要自行转义处理
导航只需指定页面 Id 即可,形如 richasy-bili://navigate?id=rank
,页面 Id 列表在 从命令行启动哔哩 中。
和 从命令行启动哔哩 一样,应用遵循同一套命令优先级处理逻辑,比如对播放而言,你不能使用这个链接 richasy-bili://video=12345&season=54321
,应用不能既播放视频又播放番剧。