# 一、开通内网穿透
>[danger] 必须开通内网穿透才可使用微信小程序功能,否则无法控制插件,我们插件的小程序页面通信是通过web的
开通内网穿透请参考文档[开通内网穿透](http://docs.16302.com/2991570)
# 二、文件夹结构
![](http://qiniucn.16302.com/6f592806b3905b524b8128faf1aefd51)
```
helloworld
├── config.json # 插件配置文件
├── helloworld.py # 系统插件主文件
└── vue # 小程序文件夹
└── index.vue # 小程序主文件
```
>[info] 从目录结构上来看只需要新增一个名称为vue的文件夹并创建一个index.vue小程序主文件即可
<br>
# 三、微信小程序规范
>[success] 我们的小程序适用于消息机制,在自美系统中可以看成一个插件模块,语法规则使用的是微信小程序官方语法规则,包括小程序框架等,详细资料请查阅 [微信开放文档 (qq.com)](https://developers.weixin.qq.com/miniprogram/dev/framework/)
>[warning] 消息机制相关知识请参考 [插件的消息机制](http://docs.16302.com/2987119) 文档
>[success] 我们的小程序框架已经内置了[Element前端框架](https://element.eleme.cn/#/zh-CN)
开发者可以自由定义各项按钮及功能
![](http://qiniucn.16302.com/d4f7e41cd30b74e8869939a541fffd6f)
>[success] 微信小程序开发语法上,使用的是[Vue.js (vuejs.org)](https://cn.vuejs.org/) 使用的是2.x版本
有功能需求的请前往vue.js的官网自行学习
![](http://qiniucn.16302.com/00bcaf2713ac3dddcdb24df8770d320e)
# 四、小程序代码样例
>[info] 在小程序开发者工具中,小程序页面被分为了`index.wxml index.scss index.wxs`三个主要文件,通过这三个文件渲染出界面并执行页面功能。
>[warning] 本质上微信小程序与普通的HTML5区别不大,最终都会导入到主文件进程中来。而我们的小程序页面使用的是集成方式的,即是把三个主要文件在一个文件 `index.vue` 中编写。
`index.vue`文件结构框架
```html
<template>
... // 页面组件
</template>
<script>
... // 页面执行的功能
</script>
<style>
... // 页面样式表
</style>
```
## index.vue文件结构细分
`Template`部分
```html
<template>
<el-row :gutter="10" class="page-set">
<div class="top-space"></div>
<div class="top-name">你好,欢迎使用自美智能物联网系统</div>
<div class="top-text">当前连接正常</div>
<el-row>
<el-col :span="8"><div class="grid-content"></div></el-col>
<el-col :span="8"><div class="grid-content">
<el-button type="primary" plain @click="hello_text">Hello World</el-button>
</div></el-col>
<el-col :span="8"><div class="grid-content"></div></el-col>
</el-row>
</el-row>
</template>
```
<br>
`JavaScript`部分
```JavaScript
<script>
module.exports = {
data() {
return {
};
},
created() {
// 在style.display = 'none' 以移除开发调试栏
var _this = this;
document.getElementById("topmenu").style.display = "none";},
methods: {
hello_text() {
self.send({
MsgType: "Text",
Receiver: "Screen",
Data: "我收到消息了哦",
});
}
},
};
</script>
```
<br>
`style`样式表部分
```
<style>
html,body {
background-color: #ffffff;
margin: 0;
border: 0;
padding: 0;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.top-space {
height: 130px;
width: 100%;
}
.top-name {
color: #000;
margin-left: 30px;
margin-right: 30px;
font-size: 1.1rem;
}
.top-text {
color: #000;
margin-top: 5px;
margin-left: 20px;
margin-right: 20px;
margin-bottom: 20px;
font-size: 2rem;
}
</style>
```
## 在微信小程序中发送和接收消息
发送消息
```javascript
send_msg() {
self.send({
MsgType: "Text", // 消息类型
Receiver: "pi_ultrasonic", // 接收者
Data: { // 内容
'optype': 'Init',
'pin': [31, 29]
},
});
}
```
接收消息
>[info] 接收消息的方法需要写在created中,在页面创建完成后就会执行这个接收函数。
```javascript
created() {
var _this = this;
// 在style.display = 'none' 以移除开发调试栏
document.getElementById("topmenu").style.display = "none";
self.receive = function (msg) {
_this.message = msg["Data"];
console.log(msg)
}
}
```
js完全代码样例
```JavaScript
<script>
module.exports = {
data() {
return {
value: 73.46546,
message: ""
};
},
created() {
// 在style.display = 'none' 以移除开发调试栏
var _this = this;
document.getElementById("topmenu").style.display = "none";
self.receive = function (msg) {
_this.message = msg["Data"];
console.log(msg)
}
},
methods: {
start_msg() {
self.send({
MsgType: "Start", // 类型为Start方法,也可以为Text\Start\Stop\.....
Receiver: "pi_ultrasonic",
Data: {
'optype': 'Init',
'pin': [31, 29]
},
});
},
formatTooltip(val) {
return val / 100;
},
},
};
</script>
```
- 自美智能物联网系统简介
- 1.系统安装
- 树莓派上安装自美系统
- 香橙派上安装自美系统
- 普通电脑和虚拟机下安装自美系统
- 安装自美智能物联网系统
- 2.系统使用
- 获取设备IP地址
- 自美系统的启动与停止
- 进入控制面板
- 通过控制面板管理插件
- 控制面板系统配置
- 设置唤醒词
- 开启内网穿透服务
- 启用SSH管理设备
- 使用微信小程序
- 3.开发者中心
- [重要必看]插件消息机制
- 配置开发环境
- 开发自美插件
- 开发微信小程序插件
- 开发前端插件
- 系统内置模块说明
- Docker容器的使用方法
- Docker中使用摄像头
- 烧录ESP32单片机
- 4.树莓派相关
- 自美树莓派声卡驱动板使用说明
- 树莓派设备配网
- 树莓派启用VNC远程桌面
- 树莓派官方系统的烧录
- 树莓派启动远程SSH
- 树莓派使用GPIO编程
- 树莓派设备修改文件权限
- 5.香橙派相关
- 香橙派官方系统的烧录
- 香橙派使用SSH服务
- 6.电视盒子相关
- 电视盒子使用自美系统
- 将armbian刷入eMMc
- 卸载自美系统
- 老版本系统说明
- 联系我们