mirror of
https://github.com/google/blockly.git
synced 2026-01-09 10:00:09 +01:00
Adding mobile HTML demo.
* Adds ln_resources script to generate Blockly symbolic links. * Moves toolbox_standard.js into this directory. Relatedly, updates Android and iOS copy scripts and .gitignore files. * Corrects HTML viewport scale and disallows zoom.
This commit is contained in:
2
demos/mobile/android/.gitignore
vendored
2
demos/mobile/android/.gitignore
vendored
@@ -1,6 +1,6 @@
|
||||
/build
|
||||
/captures
|
||||
/app/src/main/assets/blockly/msg
|
||||
/app/src/main/assets/blockly
|
||||
.settings
|
||||
.project
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ android {
|
||||
|
||||
task copyBlocklyHtmlFile(type: Copy) {
|
||||
from('../../html') {
|
||||
include 'index.html'
|
||||
include 'index.html', 'toolbox_standard.js'
|
||||
}
|
||||
into project(':app').file('./src/main/assets/blockly')
|
||||
rename('index.html', 'webview.html')
|
||||
|
||||
4
demos/mobile/html/.gitignore
vendored
Normal file
4
demos/mobile/html/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/blockly_compressed.js
|
||||
/blocks_compressed.js
|
||||
/media
|
||||
/msg
|
||||
@@ -2,6 +2,7 @@
|
||||
<!-- HTML file to host Blockly in a mobile WebView. -->
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<style type="text/css">
|
||||
html, body, #blocklyDiv {
|
||||
border: 0;
|
||||
@@ -22,7 +23,8 @@
|
||||
<script type="text/javascript">
|
||||
var workspacePlayground = Blockly.inject('blocklyDiv', {
|
||||
media: 'media/',
|
||||
toolbox: BLOCKLY_TOOLBOX_XML['standard']
|
||||
toolbox: BLOCKLY_TOOLBOX_XML['standard'],
|
||||
zoom: {controls: true}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
22
demos/mobile/html/ln_resources.sh
Executable file
22
demos/mobile/html/ln_resources.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Create symbolic links in this directory for the
|
||||
# Blockly library files used by this demo's index.html.
|
||||
|
||||
if [[ ! -e ../../../blockly_compressed.js ]]; then
|
||||
echo "ERROR: Could not locate blockly_compressed.js. Run from demos/mobile/html/" 1>&2
|
||||
exit 1 # terminate and indicate error
|
||||
fi
|
||||
|
||||
if [ ! -L blockly_compressed.js ]; then
|
||||
ln -s ../../../blockly_compressed.js blockly_compressed.js
|
||||
fi
|
||||
if [ ! -L blocks_compressed.js ]; then
|
||||
ln -s ../../../blocks_compressed.js blocks_compressed.js
|
||||
fi
|
||||
if [ ! -L media ]; then
|
||||
ln -s ../../../media media
|
||||
fi
|
||||
if [ ! -L msg ]; then
|
||||
ln -s ../../../msg msg
|
||||
fi
|
||||
6
demos/mobile/ios/.gitignore
vendored
6
demos/mobile/ios/.gitignore
vendored
@@ -1,9 +1,5 @@
|
||||
# Files copied by cp_resources.sh
|
||||
/Resources/Non-Localized/Blockly/blockly_compressed.js
|
||||
/Resources/Non-Localized/Blockly/blocks_compressed.js
|
||||
/Resources/Non-Localized/Blockly/media
|
||||
/Resources/Non-Localized/Blockly/msg
|
||||
/Resources/Non-Localized/Blockly/webview.html
|
||||
/Resources/Non-Localized/Blockly
|
||||
|
||||
|
||||
# Xcode.gitignore
|
||||
|
||||
@@ -1,333 +0,0 @@
|
||||
|
||||
var BLOCKLY_TOOLBOX_XML = BLOCKLY_TOOLBOX_XML || Object.create(null);
|
||||
|
||||
/* BEGINNING BLOCKLY_TOOLBOX_XML ASSIGNMENT. DO NOT EDIT. USE BLOCKLY DEVTOOLS. */
|
||||
BLOCKLY_TOOLBOX_XML['standard'] =
|
||||
// From XML string/file, replace ^\s?(\s*)?(<.*>)$ with \+$1'$2'
|
||||
// Tweak first and last line.
|
||||
'<xml>'
|
||||
+ '<category name="Logic" colour="%{BKY_LOGIC_HUE}">'
|
||||
+ '<block type="controls_if"></block>'
|
||||
+ '<block type="logic_compare"></block>'
|
||||
+ '<block type="logic_operation"></block>'
|
||||
+ '<block type="logic_negate"></block>'
|
||||
+ '<block type="logic_boolean"></block>'
|
||||
+ '<block type="logic_null" disabled="true"></block>'
|
||||
+ '<block type="logic_ternary"></block>'
|
||||
+ '</category>'
|
||||
+ '<category name="Loops" colour="%{BKY_LOOPS_HUE}">'
|
||||
+ '<block type="controls_repeat_ext">'
|
||||
+ '<value name="TIMES">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">10</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="controls_repeat" disabled="true"></block>'
|
||||
+ '<block type="controls_whileUntil"></block>'
|
||||
+ '<block type="controls_for">'
|
||||
+ '<value name="FROM">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="TO">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">10</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="BY">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="controls_forEach"></block>'
|
||||
+ '<block type="controls_flow_statements"></block>'
|
||||
+ '</category>'
|
||||
+ '<category name="Math" colour="%{BKY_MATH_HUE}">'
|
||||
+ '<block type="math_number" gap="32">'
|
||||
+ '<field name="NUM">123</field>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_arithmetic">'
|
||||
+ '<value name="A">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="B">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_single">'
|
||||
+ '<value name="NUM">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">9</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_trig">'
|
||||
+ '<value name="NUM">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">45</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_constant"></block>'
|
||||
+ '<block type="math_number_property">'
|
||||
+ '<value name="NUMBER_TO_CHECK">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">0</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_round">'
|
||||
+ '<value name="NUM">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">3.1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_on_list"></block>'
|
||||
+ '<block type="math_modulo">'
|
||||
+ '<value name="DIVIDEND">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">64</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="DIVISOR">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">10</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_constrain">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">50</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="LOW">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="HIGH">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">100</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_random_int">'
|
||||
+ '<value name="FROM">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">1</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="TO">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">100</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="math_random_float"></block>'
|
||||
+ '</category>'
|
||||
+ '<category name="Text" colour="%{BKY_TEXTS_HUE}">'
|
||||
+ '<block type="text"></block>'
|
||||
+ '<block type="text_join"></block>'
|
||||
+ '<block type="text_append">'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_length">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">abc</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_isEmpty">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT"></field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_indexOf">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">text</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '<value name="FIND">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">abc</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_charAt">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">text</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_getSubstring">'
|
||||
+ '<value name="STRING">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">text</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_changeCase">'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">abc</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_trim">'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">abc</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_count">'
|
||||
+ '<value name="SUB">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_replace">'
|
||||
+ '<value name="FROM">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="TO">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_reverse">'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text"></shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<label text="Input/Output:" web-class="ioLabel"></label>'
|
||||
+ '<block type="text_print">'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">abc</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="text_prompt_ext">'
|
||||
+ '<value name="TEXT">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">abc</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '</category>'
|
||||
+ '<category name="Lists" colour="%{BKY_LISTS_HUE}">'
|
||||
+ '<block type="lists_create_with">'
|
||||
+ '<mutation items="0"></mutation>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_create_with"></block>'
|
||||
+ '<block type="lists_repeat">'
|
||||
+ '<value name="NUM">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">5</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_length"></block>'
|
||||
+ '<block type="lists_isEmpty"></block>'
|
||||
+ '<block type="lists_indexOf">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">list</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_getIndex">'
|
||||
+ '<value name="VALUE">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">list</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_setIndex">'
|
||||
+ '<value name="LIST">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">list</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_getSublist">'
|
||||
+ '<value name="LIST">'
|
||||
+ '<block type="variables_get">'
|
||||
+ '<field name="VAR">list</field>'
|
||||
+ '</block>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_split">'
|
||||
+ '<value name="DELIM">'
|
||||
+ '<shadow type="text">'
|
||||
+ '<field name="TEXT">,</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="lists_sort"></block>'
|
||||
+ '<block type="lists_reverse"></block>'
|
||||
+ '</category>'
|
||||
+ '<category name="Colour" colour="%{BKY_COLOUR_HUE}">'
|
||||
+ '<block type="colour_picker"></block>'
|
||||
+ '<block type="colour_random"></block>'
|
||||
+ '<block type="colour_rgb">'
|
||||
+ '<value name="RED">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">100</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="GREEN">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">50</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="BLUE">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">0</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '<block type="colour_blend">'
|
||||
+ '<value name="COLOUR1">'
|
||||
+ '<shadow type="colour_picker">'
|
||||
+ '<field name="COLOUR">#ff0000</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="COLOUR2">'
|
||||
+ '<shadow type="colour_picker">'
|
||||
+ '<field name="COLOUR">#3333ff</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '<value name="RATIO">'
|
||||
+ '<shadow type="math_number">'
|
||||
+ '<field name="NUM">0.5</field>'
|
||||
+ '</shadow>'
|
||||
+ '</value>'
|
||||
+ '</block>'
|
||||
+ '</category>'
|
||||
+ '<sep></sep>'
|
||||
+ '<category name="Variables" colour="%{BKY_VARIABLES_HUE}" custom="VARIABLE"></category>'
|
||||
+ '<category name="Functions" colour="%{BKY_PROCEDURES_HUE}" custom="PROCEDURE"></category>'
|
||||
+ '</xml>';
|
||||
/* END BLOCKLY_TOOLBOX_XML ASSIGNMENT. DO NOT EDIT. */
|
||||
@@ -14,6 +14,7 @@ MORE_FILES_TO_COPY=(
|
||||
mkdir -p $IOS_RESOURCES/media
|
||||
mkdir -p $IOS_RESOURCES/msg/js
|
||||
rsync -rp ../html/index.html $IOS_RESOURCES/webview.html
|
||||
rsync -rp ../html/toolbox_standard.js $IOS_RESOURCES/toolbox_standard.js
|
||||
for i in "${MORE_FILES_TO_COPY[@]}"; do # The quotes are necessary here
|
||||
TARGET_DIR=$(dirname $IOS_RESOURCES/$i)
|
||||
rsync -rp $BLOCKLY_ROOT/$i $TARGET_DIR
|
||||
|
||||
Reference in New Issue
Block a user