唤起桌面客户端

说明

本篇主要介绍如何通过URLScheme 唤醒桌面客户端,并做指定的动作。

1 URLScheme

BasicUI 桌面客户端 URLScheme 的协议格式为: "pds"+domainID

假设您的DomainID为 hz65, 那么URLScheme为 : pdshz65:

打开URL举例:

window.open("pdshz65:open?opt=%7B%22seq_id%22%3A%22x3hug4qu1xn%22%2C%22pathname%22%3A%22%2Findex%22%7D")

2 URL参数详解

<protocol>:<action>?opt=[opt]

字段

描述

protocol

协议名称,’pds’+domainID 组成。

action

url 的 pathname , 一般为动词, 目前支持:opendownload

opt

opt 为json 字符串 encodeURI 后的字符串,encodeURIComponent(JSON.stringify(opt))

2.1 打开指定URL

opt 参数详解:

字段

描述

seq_id

序列id,在一次会话中(打开桌面端到关闭桌面端)不可重复。

pathname

唤醒后,要跳转到的 pathname。

举例:

let domainId='hz65'
let action='open'
let opt ={
  "seq_id": Math.random().toString(36).substring(2),
  "pathname":"/drive"
}
let url = `pds${domainId}:${action}?opt=${encodeURIComponent(JSON.stringify(opt))}`
window.open(url)

2.2 下载指定的文件

opt 参数详解:

字段

描述

seq_id

序列id,在一次会话中(打开桌面端到关闭桌面端)不可重复。

pathname

唤醒后,要跳转到的 pathname

loc_type

所在位置类型。取值为:drive 或者 share

loc_id

loc_typedrive时,取值为drive_id, 为share时,取值为share_id

file_keys

要下载的文件 file_id(标准模式)或者 file_path(托管模式)的数组,格式如:["file_id1","file_id2"] 。

举例:

let domainId='hz65'
let action='download'
let opt ={
  "seq_id": Math.random().toString(36).substring(2),
  "loc_type": "drive",
  "loc_id": "1",
  "pathname":"/drive/folders/5e9d2e02570e5a973cd64b648cbf97ac2ebb26dc",
  "file_keys":["5faebd028e8365fef08b4a019308765631e179e0"]
}
let url = `pds${domainId}:${action}?opt=${encodeURIComponent(JSON.stringify(opt))}`
window.open(url)