Nếu ứng dụng của bạn được lưu trữ trên App Engine, một dịch vụ bộ nhớ trên đám mây sẽ có sẵn cho phép người dùng lưu, tải, chia sẻ và phát hành các chương trình của họ.
Thiết lập App Engine
Mục tiêu đầu tiên là nhận được bản sao của riêng bạn về Blockly chạy trên App Engine.
- Tải và cài đặt SDK Python.
- Đăng nhập vào Google App Engine và tạo một ứng dụng.
- Chỉnh sửa
appengine/app.yaml
và thay đổi ID ứng dụng từblockly-demo
thành tên ứng dụng bạn đã tạo ở bước trước. - Sao chép (hoặc liên kết mềm) các tệp và thư mục sau vào
appengine/static/
:demos/
msg/
media/
*_compressed.js
- Không bắt buộc: Nếu bạn muốn sử dụng
blockly_uncompressed.js
trên máy chủ, hãy sao chép cả tệp đó vàoappengine/static/
rồi sao chépcore
vàoappengine/static/
. - Không bắt buộc: Nếu muốn chạy Blockly Playground, bạn sẽ phải sao chép các thư mục
blocks
,generators
vàtests
, cũng như các tệp trong bước 5. - Chạy Trình chạy Google App Engine từ GUI, thêm thư mục
appengine
của bạn làm ứng dụng hiện có và nhấn nút "Deploy". Nếu bạn muốn sử dụng dòng lệnh, hãy chạy:appcfg.py --oauth2 update appengine/
.
Sau khi tải lên Blockly, bạn có thể trỏ trình duyệt đến URL mà bạn đã tạo ở bước 2. Bạn sẽ thấy một danh sách các bản minh hoạ, bao gồm cả bản minh hoạ về bộ nhớ trên đám mây.
Trò chuyện với đám mây
Hãy kiểm tra nguồn của bản minh hoạ bộ nhớ tại demos/storage/index.html và lưu ý các tính năng sau đây. Trước tiên, có một tập lệnh bao gồm tải API lưu trữ trên đám mây:
<script src="/storage.js"></script>
Lưu ý rằng tập lệnh này giả định chỉ có một không gian làm việc dạng khối trên trang. Bạn cũng có thể sửa đổi các định nghĩa về thông báo này theo ý muốn:
BlocklyStorage.HTTPREQUEST_ERROR = 'There was a problem with the request.\n'; BlocklyStorage.LINK_ALERT = 'Share your blocks with this link:\n\n%1'; BlocklyStorage.HASH_ERROR = 'Sorry, "%1" doesn\'t correspond with any saved Blockly file.'; BlocklyStorage.XML_ERROR = 'Could not load your saved file.\n' + 'Perhaps it was created with a different version of Blockly?';
Bạn có thể tìm thấy bản dịch của các thông báo này sang ngôn ngữ khác trong Blockly Games trên thư mục json.
Việc lưu các khối hiện tại là một lệnh gọi đến BlocklyStorage.link()
:
<button onclick="BlocklyStorage.link()">Save Blocks</button>
Để khôi phục các khối đã lưu khi tải trang, bạn chỉ cần gọi BlocklyStorage.retrieveXml
bằng hàm băm của URL sau khi Chèn:
if ('BlocklyStorage' in window && window.location.hash.length > 1) { BlocklyStorage.retrieveXml(window.location.hash.substring(1)); }
Bộ nhớ cục bộ
API storage.js
cũng cung cấp khả năng lưu một tập hợp khối duy nhất trong bộ nhớ cục bộ của trình duyệt. Việc này có thể được triển khai thay vì sử dụng bộ nhớ trên đám mây, hoặc ngoài bộ nhớ trên đám mây (mặc dù trong trường hợp sau này, người dùng phải
cẩn thận cả hai loại bộ nhớ sẽ cố gắng khôi phục cùng lúc).
Để khôi phục các khối từ bộ nhớ cục bộ, hãy gọi BlocklyStorage.restoreBlocks
trong thời gian chờ ngay sau khi chèn Blockly.
setTimeout(BlocklyStorage.restoreBlocks, 0);
Để tự động sao lưu các khối vào bộ nhớ cục bộ khi người dùng rời khỏi trang, hãy gọi BlocklyStorage.backupOnUnload
và trình nghe này sẽ đăng ký trình nghe sự kiện trên sự kiện tải trang.
BlocklyStorage.backupOnUnload();
Ví dụ:
Đây là bản minh hoạ trực tiếp bộ nhớ trên đám mây.