水平有限,翻譯錯誤的地方還望網友斧正
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/