水平有限,翻译错误的地方还望网友斧正
Wrapper 封装
这些命令可以控制wrapper框架,不用使用websocket发送到UiServer。
wrapperConfirm message,[button_caption]
显示一个带确认按钮的通知框。
参数 | 描述 |
---|---|
message | 你要显示的消息 |
button_caption(可选) | 确认的按钮的文字(默认:OK) |
返回:确认返回Ture
例子:
# Delete site
siteDelete: (address) ->
site = @sites[address]
title = site.content.title
if title.length > 40
title = title.substring(0, 15)+"..."+title.substring(title.length-10)
@cmd "wrapperConfirm", ["Are you sure you sure? <b>#{title}</b>", "Delete"], (confirmed) =>
@log "Deleting #{site.address}...", confirmed
if confirmed
$(".site-#{site.address}").addClass("deleted")
@cmd "siteDelete", {"address": address}
wrapperGetLocalStorage
返回:浏览器站点本地存储
例子:
@cmd "wrapperGetLocalStorage", [], (res) =>
res ?= {}
@log "Local storage value:", res
wrapperSetLocalStorage data
设置站点在本地浏览器中存储的数据
返回:None
例子:
Page.local_storage["topic.#{@topic_id}_#{@topic_user_id}.visited"] = Time.timestamp()
Page.cmd "wrapperSetLocalStorage", Page.local_storage
wrapperNotification type, message, [timeout]
显示一个通知
参数 | 描述 |
---|---|
type | 可能的值:info,error,done |
message | 你要显示的消息 |
timeout(可选) | 消失的时间(毫秒ms) |
返回:None
例子:
@cmd "wrapperNotification", ["done", "Your registration has been sent!", 10000]
wrapperPrompt message, [type]
显示一个可以输入文字的提示框。
参数 | 描述 |
---|---|
message | 你要显示的消息 |
type(可选) | 输入的类型(默认:text) |
返回:输入的文字
例子:
# Prompt the private key
@cmd "wrapperPrompt", ["Enter your private key:", "password"], (privatekey) =>
$(".publishbar .button").addClass("loading")
# Send sign content.json and publish request to server
@cmd "sitePublish", [privatekey], (res) =>
$(".publishbar .button").removeClass("loading")
@log "Publish result:", res
wrapperSetViewport viewport
设置站点viewport
元标签内容(移动站点会用到)
参数 | 描述 |
---|---|
viewport | viewport元标签的内容 |
返回:None
例子:
# Prompt the private key
@cmd "wrapperSetViewport", "width=device-width, initial-scale=1.0"
UiServer
UiServer对于ZeroNet就像LAMP设置的站点。
UiServer会完成所有的“后台”工作(比如:查询数据库,访问文件,诸如此类)。你可以调用这些API搭建动态网站。
certAdd domain, auth_type, auth_user_name, cert
为当前的用户添加一个证书
参数 | 描述 |
---|---|
domain | 认证所有者的域名 |
auth_type | 注册的验证类型 |
auth_user_name | 注册的用户名 |
cert | 证书内容:将字段auth_address#auth_type/auth_user_name 签给站点的所有者 |
返回:”ok”,”Not changed”或者{“error”:error_message}
例子:
@cmd "certAdd", ["zeroid.bit", auth_type, user_name, cert_sign], (res) =>
$(".ui").removeClass("flipped")
if res.error
@cmd "wrapperNotification", ["error", "#{res.error}"]
certSelect accepted_domains
显示证书选择器
参数 | 描述 |
---|---|
accpeted_domains | 接受认证的列表 |
返回:None
例子:
@cmd "certSelect", {"accepted_domains": ["zeroid.bit"]}
channelJoin channel
关于站点事件的请求通知
参数 | 描述 |
---|---|
channel | 加入频道 |
返回:None
Channels:
- siteChanged(默认加入)
Event:peers_added,file_started,file_done,file_failed
例子:
# Wrapper websocket connection ready
onOpenWebsocket: (e) =>
@cmd "channelJoinAllsite", {"channel": "siteChanged"}
route: (cmd, data) ->
if cmd == "setSiteInfo"
@log "Site changed", data
else
@log "Unknown command", cmd, data
例子event data:
{
"tasks":0,
"size_limit":10,
"address":"1RivERqttrjFqwp9YH1FviduBosQPtdBN",
"next_size_limit":10,
"event":[ "file_done", "index.html" ],
[...] # Same as siteInfo return dict
}
dbQuey query
引用
ZeroNet 官方文档 http://zeronet.readthedocs.org/en/latest/