区块链android模块化/可视化编程工具


浏览:651 次

通过在Android中集成Blockly,我们可以实现类似下图所示的拖放模块化/可视化编程,并自动生成JavaScript代码。

集成模式:

;1.将Github中的blocklylib core和blocklylibvertical添加到我们项目的依赖项中。

2.创建一个Activity以继承AbstractBlocklyActivity,并至少实现以下四种方法:

GetBlockDefinitionsJsonPaths()用于获取定义块数据的json文件的路径。返回值是资产目录中文件的路径集合。

GetToolboxContentsXmlPath()用于获取工具箱数据的xml文件路径。返回值是资产目录中文件的路径。加载默认工具箱.xml的示例:

@覆盖

受保护的字符串getToolboxContentsXmlPath(){

;返回“default/toolbox.xml”;

}

 nbsp; ;GetGeneratorsJsPaths()用于获取块生成代码的生成器js文件的路径。返回值是资产目录中文件的路径集合。

私有静态最终列表JAVASCRIPT_GENERATORS=Arrays.asList(

//添加自己定义的生成器。默认块的生成器已包含。我们不需要填写

);

@覆盖

受保护列表getGeneratorsJsPaths(){

;返回JAVASCRIPT_ GENERATORS;

}

;GetCodeGenerationCallback()用于单击“运行/播放”按钮时代码生成后的回调。返回值是回调对象CodeGenerationRequest CodeGeneratorCallback(),它对其重写方法onFinishCodeGeneration中的代码执行所需的操作。例如:

;私有最终CodeGenerationRequest。代码生成器回调mCodeGenerator回调=

 nbsp; ; ; ;新的CodeGenerationRequest。代码生成器回调(){

 nbsp; ; ; ; ; ;@推翻

 nbsp; ; ; ; ; ;public void onFinishCodeGeneration(最终字符串生成代码){

 nbsp; ; ; ; ; ; ; ;Toast.makeText(MainActivity.this,generatedCode,Toast.LNGTH_LONG).show();

 nbsp; ; ; ; ; ; ; ;日志e(标记,“generatedCode:\n”+generatedCode);

 nbsp; ; ; ; ; ;}

 nbsp; ; ; ;};

@非Null

@推翻

;受保护的CodeGenerationRequest。代码生成器回调getCodeGenerationCallback(){

 nbsp; ;返回mCodeGeneratorCallback;

}

简单示例的完整活动代码:

公共类MainActivity扩展了AbstractBlocklyActivity{

;private static final String TAG=“MainActivity”;

;private static final List<String>JAVASCRIPT_ GENERATORS=数组。asList(新字符串[]{

 nbsp; ; ; ;";generators.js“

});

;私有最终CodeGenerationRequest。代码生成器回调mCodeGenerator回调=

 nbsp; ; ; ;新的CodeGenerationRequest。代码生成器回调(){

 nbsp; ; ; ; ; ;@推翻

 nbsp; ; ; ; ; ;public void onFinishCodeGeneration(最终字符串生成代码){

 nbsp; ; ; ; ; ; ; ;Toast.makeText(MainActivity.this,generatedCode,Toast.LNGTH_LONG).show();

 nbsp; ; ; ; ; ; ; ;日志e(标记,“generatedCode:\n”+generatedCode);

 nbsp; ; ; ; ; ;}

 

相关资讯:
区块链与互联网的区别

区块链与互联网的区别

查看
区块链有多少种类型?

区块链有多少种类型?

查看
元宇宙、大数据和区块链之间的关系

元宇宙、大数据和区块链之间的关系

查看
区块链是什么技术

区块链是什么技术

查看
区块链技术的发展与应用

区块链技术的发展与应用

查看