typescript - 如何在 Angular 5 (Typescript) 中生成不同类型的二维码
问题描述
import {Component, Inject, Input, ElementRef, OnInit} from '@angular/core';
declare let QRCode: any;
@Component({
selector: 'app-qrcode',
templateUrl: './qrcode.component.html',
styleUrls: ['./qrcode.component.scss']
})
export class QrcodeComponent implements OnInit {
elementType : 'url' | 'canvas' | 'img' = 'url';
value:any;
constructor()
{}
ngOnInit() {
this.value = 'WWW.Google.com';
}
}
<ngx-qrcode [qrc-element-type]="elementType " [qrc-value] = "value">
</ngx-qrcode>
我需要生成二维码,我已经这样做了,但是想改变二维码的类型,这意味着。当我们扫描二维码时,联系方式将自动添加联系方式,地图二维码的“获取方向”,电子邮件类型将定向到我们的邮箱和 PDF 下载功能。
解决方案
您不必更改内容的类型,假设您要编码一个包含电子邮件的值或另一个带有 url 的值,这不是这里的那种类型。只有用户的设备决定是否或如何处理 qrcode 的有效负载(值)。
此处的类型表示“呈现为 canvas-tag”或“呈现为 img-Tag”。
较长的部分:
如果您查看 lib 的源代码,elementType 被传递给一个 switch 语句,它本身(对于 url 和 img)默认为 img。由于包站点本身没有太多关于 elementType 的文档,因此我查看了名为qrcode的底层包上的示例
来自 qrcode 文档: toCanvas (canvas) = 将 qr 代码符号绘制到画布上。toDataURL (img, url) = 返回二维码的字符串表示形式。目前仅适用于 SVG。
因此,无需深入挖掘库本身,它应该像编写以将编码的电子邮件作为 qrcode 一样简单,呈现在图像标签中。
<ngx-qrcode [qrc-element-type]="img" [qrc-value]="mailto:test@example.com"></ngx-qrcode>
由于 qrc-element-type 默认为“toDataURL”,您可能会忽略它(尚未对此进行测试)或需要一些附加的 ' 围绕您的值。
免责声明:我是另一个名为angularx-qrcode的二维码包的作者,它适用于 Angular4,5 和 6。
我在这里为 angular5/6 制作了一个工作演示应用程序: https ://github.com/Cordobo/angularx-qrcode-sample-app
推荐阅读
- wpf - 我在资源字典中定义的样式无法解析
- laravel - 多张图片上传不起作用Laravel 6
- javascript - 如何随机选择2个数字中的数字。p5js
- php - 从注册页面中删除必填地址字段:Opencart 2.3.0.2
- javascript - 获取具有多个 ID 的 firebase firestore 文档
- c - 如何从预处理器启用内在功能
- android - 我无法更新列表视图
- visual-studio - 如何在 asp.net.core 中使用 Ajax 发布表单数据和文件
- algorithm - 图表:找到最小数量的节点,以便从 a 到 b 的每条路径至少穿过其中一个
- c++ - 从一个索引中删除一个元素是否会从第二个索引中删除相应的条目 boost::multi_index