微信小程序
- 把项目托管到gitee,git push -u origin “master”报错。 解决办法:修改本地仓库的分支为master分支
git push -u origin "master" - 更改分支 git checkout “分支名”
- 新建自己的工程:
1
2
3
4
51. usb开发者调试
2. 添加blockly除了demo以外的三个module
3. 出现com.xxx.xxx, 回到Project模式,分别删除引入的三个module的build.gradle中的除了dependency和android标签以外的所有标签
4. 由于只是引入了,还没有与三个module之间建立依赖,在project structure中的dependency中自己的blocklydemo中添加与vertical的连接
5. 出现bug,在vertical和core中删除flavor和sourceSets标签安卓开发
activity跳转
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19// 1. login案例中使用了register作为从某一个activity返回该activity传回的值
register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
Intent intent = result.getData();
if(intent!=null && result.getResultCode() == Activity.RESULT_OK){
realPass=intent.getStringExtra("new_password");
}
}
});
// 2. register从该activity携带参数跳转到另一个activity
Intent intent=new Intent(this,LoginForgetActivity.class);
intent.putExtra("phone",phone);
register.launch(intent);
// 3. startActivity()
Intent intent =new Intent(this,xxx.class);
intent.setFlags(Intent.FLAG_xxxx); // 避免多次跳转到同一个页面 清除栈中的本页面的顶部的所有的activity
startActivity(intent);
//4. - activity中的 onResume重写可以实现重新打开该页面时(可以是重新启动该app,也可以是从某一个activity返回该activity)blockly
- 在body中定义xml,category代表某一大类,block代表块
1
2
3
4
5
6
7
8
9
10
11
12
13
14<xml id="toolbox" style="display: none">
<category name="Text">
<block type="controls_if"></block>
<block type="logic_compare"></block>
<block type="controls_repeat_ext"></block>
<block type="math_number"></block>
<block type="math_arithmetic"></block>
<block type="text"></block>
<block type="text_print"></block>
<block type="string_length"></block>
<block type="my_text"></block>
<block type="div_move"></block>
</category>
</xml> - 自定义代码块json格式(JavaScript也可以)
1
2
3
4
5
6
7
8
9
10
11
12Blockly.Blocks['div_move'] = {
init: function() {
this.jsonInit({
"message0": 'show_img',
// "output": "Number",
"colour": 160,
"nextStatement":null,
"tooltip": "Returns number of letters in the provided text.",
"helpUrl": "http://www.w3schools.com/jsref/jsref_length_string.asp"
});
}
}; - 给自定义代码块添加函数,locations为自定义函数,点击事件
1
2
3
4
5
6Blockly.JavaScript['div_move'] = function(block) {
// String or array length.
// var str=block.getFieldValue('TEXT')
return "this.locations()";
}; - 给执行按钮添加监听事件
1
2
3
4
5
6
7
8
9
10
11
12function runCode(){
window.LoopTrap = 1000;
Blockly.JavaScript.INFINITE_LOOP_TRAP =
'if (--window.LoopTrap == 0) throw "Infinite loop.";\n';
var code = Blockly.JavaScript.workspaceToCode(demoWorkspace);
Blockly.JavaScript.INFINITE_LOOP_TRAP = null;
try{
eval(code);
}catch(e){
alert(e);
}
} - 将xml注入div标签中
1
2
3
4var demoWorkspace = Blockly.inject('blocklyDiv',
{ media: '../../media/',
toolbox: document.getElementById('toolbox')}
);1.19日
- python运行环境出错导致接下的环节进行不下去,重装系统
4.8日
- node.js建立websocket服务器,socket.on(‘messageName’,(data)=>{logic}),其中第一个参数有message,close,第二个参数是传递的内容。若想从一端发送给另一端,用socket.emit(‘messageName’,{messageContent})
服务器端的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24//创建socket服务器
let Ws = require("ws").Server;
let wss = new Ws({
port: 8282
})
wss.on("connection", function(ws) {
console.log("Server has a new connection")
//接收客户端接收的json数据
ws.on("message", res => {
//转成对象
console.log(JSON.parse(res))
//发送数据给客户端
ws.send(JSON.stringify({
data: "serverData"
}));
})
ws.on("close", res => {
console.log('Server is now closed');
// ws.close();
})
ws.on('error', function(err) {
console.log('Error occurred:', err.message);
});
})
微信小程序端的代码init.js
由于微信小程序只能同时存在一个websocket连接,所以这里只有在等待断开连接之后才能继续下一个连接
第一次建立连接用ws.onOpen(),之后想要继续发送数据用wx.onSocketMessage({data: JSON.stringify({})});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 // pages/init/init.js
let ws;
Page({
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log('onLoad');
},
// 绑定按钮 <button bindtap="socketButtonClick1">发送数据</button>
socketButtonClick1: function () {
ws = wx.connectSocket({
url: 'ws://localhost:8282',
})
console.log('but1')
ws.onMessage(function (res) {
console.log("onMessage", res)
})
ws.onOpen(function () {
// 发送消息给服务器端
ws.send({
data: JSON.stringify({
data: "clientData",
})
});
})
// 断开连接的时间
setTimeout(() => {
ws.close()
}, 5000);
},
})
4.10日
学会查阅开发者文档,不要一个人揣摩函数的用途
开发者文档:nodejs端的socket.io文档以及微信小程序端的wx.connectSocket()函数4.16日
每个玩家输入各自的操作码,服务端负责接受操作码,然后广播。客户端拥有每个用户的操作码,然后为各自的用户执行操作。(有先后性,无法判断谁先完成动作或者后完成动作).
5.24日
微信小程序的客户端和Javascript搭建的客户端的websocket发送json的区别
- mini Programme
1
2
3
4
5
6
7 ws.send({
// 外层data不能改变变量名
data: JSON.stringify({
name: inputName,
roomId: inputRoomId
})
})- 普通的javascript
1
2
3
4
5 let data={
name:ipt1,
roomNo:ipt2
}
ws.send(JSON.stringify(data))