• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# qrcode开发指导
2
3
4生成并显示二维码,具体用法请参考[qrcode](../reference/arkui-js/js-components-basic-qrcode.md)。
5
6
7## 创建qrcode组件
8
9pages/index目录下的hml文件中创建一个qrcode组件。
10
11
12```html
13<!-- xxx.hml-->
14<div class="container">
15  <qrcode value="Hello"></qrcode>
16</div>
17```
18
19
20```css
21/* xxx.css */
22.container {
23  width: 100%;
24  height: 100%;
25  flex-direction: column;
26  align-items: center;
27  justify-content: center;
28  background-color: #F1F3F5;
29}
30```
31
32![zh-cn_image_0000001229155403](figures/zh-cn_image_0000001229155403.png)
33
34> **说明:**
35> qrcode组件在创建的时候value的值为必填项。
36
37
38## 设置组件类型
39
40通过设置qrcode的type属性来选择按钮类型,如定义qrcode为矩形二维码、圆形二维码。
41
42
43```html
44<!-- xxx.hml-->
45<div class="container">
46  <select onchange="settype">
47    <option for="{{bcol_list}}" value="{{$item}}">{{$item}}</option>
48  </select>
49  <qrcode value="Hello" type="{{qr_type}}"></qrcode>
50</div>
51```
52
53
54```css
55/* xxx.css */
56.container {
57  width: 100%;
58  height: 100%;
59  flex-direction: column;
60  align-items: center;
61  justify-content: center;
62  background-color: #F1F3F5;
63}
64select{
65  margin-top: 50px;
66  margin-bottom: 50px;
67}
68```
69
70
71```js
72// index.js
73export default {
74  data: {
75    qr_type: 'rect',
76    bcol_list: ['rect','circle']
77  },
78  settype(e) {
79    this.qr_type = e.newValue
80  },
81}
82```
83
84![zh-cn_image_0000001218439850](figures/zh-cn_image_0000001218439850.gif)
85
86
87## 设置样式
88
89通过color和background-color样式为二维码设置显示颜色和背景颜色。
90
91
92```html
93<!-- xxx.hml-->
94<div class="container">
95  <qrcode value="Hello" type="rect"></qrcode>
96</div>
97```
98
99
100```css
101/* xxx.css */
102.container {
103  width: 100%;
104  height: 100%;
105  flex-direction: column;
106  align-items: center;
107  justify-content: center;
108  background-color: #F1F3F5;
109}
110qrcode{
111  width: 300px;
112  height: 300px;
113 color: blue;  background-color: #ffffff;
114}
115```
116
117![zh-cn_image_0000001183595750](figures/zh-cn_image_0000001183595750.png)
118
119> **说明:**
120> - width和height不一致时,取二者较小值作为二维码的边长,且最终生成的二维码居中显示。
121>
122> - width和height只设置一个时,取设置的值作为二维码的边长。都不设置时,使用200px作为默认边长。
123>
124
125
126## 场景示例
127
128在本场景中将二维码与输入框绑定,通过改变输入框的内容改变二维码。
129
130
131```html
132<!-- xxx.hml-->
133<div class="container">
134  <input style="margin-bottom: 100px;" onchange="change"></input>
135  <qrcode value="{{textVal}}"></qrcode>
136</div>
137```
138
139
140```css
141/* xxx.css */
142.container {
143  width: 100%;
144  height: 100%;
145  flex-direction: column;
146  align-items: center;
147  justify-content: center;
148  background-color: #F1F3F5;
149}
150qrcode{
151  width: 400px;
152  height: 400px;
153}
154```
155
156
157```js
158// index.js
159export default{
160  data: {
161    textVal: ''
162  },
163  change(e){
164    this.textVal = e.value
165  }
166}
167```
168
169![zh-cn_image_0000001183431656](figures/zh-cn_image_0000001183431656.gif)
170