我们在UI5官方文档上进行搜索Scan,是只能找到一个BarcodeScanner的,这个API是无法实现我们这个需求的,所以如果有朋友收到这种需求,不想做的情况下,是可以推脱一下,把问题抛给SAP的(笑)。既然写了博客,也是可以推断到我没有进行推脱哈(笑)。不过非标准功能,使用第三方库进行开发始终是有风险,可以自行评估下。我们下面直接进入今天的主题吧。

实现这个需求使用了一个第三方的开源库 mebjas/html5-qrcode

Gitthub:https://github.com/mebjas/html5-qrcode

参考博客:QR Code scanner using HTML5 and Javascript | Minhaz’s Blog

那么接下来和引入其他第三库的步骤是一模一样的。

在webapp里面创建一个文件夹lib,再在里面新建一个js文件html5-qrcode.min.js

把这个链接

https://raw.githubusercontent.com/mebjas/html5-qrcode/master/minified/html5-qrcode.min.js

下面的js 复制一份,然后粘贴进刚刚创建的html5-qrcode.min.js里面。文件结构见下截图

然后view里面可以使用一个layout来充当我们扫描控件的容器

<mvc:View controllerName="YTEST_QR_CODE.controller.App" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc"xmlns:l="sap.ui.layout" displayBlock="true" xmlns="sap.m"><App><pages><Page title="{i18n>title}"><Panel headerText="Static (decorative) HTML Provided as a String With Preserved DOM After Rendering"><content><l:HorizontalLayout id="staticContentLayout"><l:content></l:content></l:HorizontalLayout></content></Panel></Page></pages></App>
</mvc:View>

contoller代码,在onInit方法里面放个input当成qrcode的容器,在onAfterRendering里面

sap.ui.define(["sap/ui/core/mvc/Controller","sap/ui/core/HTML","sap/m/MessageToast","YTEST_QR_CODE/lib/html5-qrcode.min"
], function(Controller, HTML, MessageToast, Html5Qrcodejs) {"use strict";return Controller.extend("YTEST_QR_CODE.controller.App", {//定时器onInit: function() {//MessageToast.show("2018年9月20日,第四次当选自民党总裁;2020年8月28日,宣布辞任首相,于9月16日正式卸任并离开首相官");      //  MessageToast.show("777",{"duration":5000})var oHtml = this.byId("htmlControl");if (!oHtml) {var sId = this.createId("htmlControl");oHtml = new HTML(sId, {// the static content as a long string literalcontent: "<div id='testreader' width='600px'></div>" +"<input type='file' id='qr-input-file' accept='image/*' capture >",preferDOM: false});var oLayout = this.byId("staticContentLayout");oLayout.addContent(oHtml);}},onAfterRendering: function() {function onScanSuccess(decodedText, decodedResult) {// Handle on success condition with the decoded text or result.console.log(`Scan result: ${decodedText}`, decodedResult);MessageToast.show(decodedText);};var html5QrcodeScanner = new Html5QrcodeScanner("testreader", {fps: 10,qrbox: 250});html5QrcodeScanner.render(onScanSuccess);},onScanSuccess: function(decodedText, decodedResult) {// handle the scanned code as you like, for example:// console.log(`Code matched = ${decodedText}`, decodedResult);},onScanFailure: function(error) {// handle scan failure, usually better to ignore and keep scanning.// for example://   console.warn(`Code scan error = ${error}`);},onPress: function() {}});
});

Fiori 实现在网页端调用摄像头扫描二维码进行识别相关推荐

  1. PC端调用摄像头扫描二维码,拿到二维码信息

    PC端调用摄像头扫描二维码,拿到二维码信息 <template><el-dialogtitle="扫描设备二维码":visible.sync="dial ...

  2. C#生成二维码、调用摄像头扫描二维码

    二维码的生成和解码,有两个开源项目可以参考: 一个是google的zxing,另外一个是ThroughWork. zxing做的很全面,支持各种语言和平台,具体不多讲,自己查去.ThroughWork ...

  3. 关于Unity调用摄像头扫描二维码与生成二维码的实现方法

    1.常用的生成二维码网址 https://cli.im/ 2.上官网下载二维码插件 http://zxingnet.codeplex.com/ 3.将下载的插件中zxing.unity.dll文件放入 ...

  4. vue实现调用摄像头扫描二维码

    安装依赖:vue-qrcode-reader npm install vue-qrcode-reader -s 直接上代码 <template><div><div cla ...

  5. h5端呼起摄像头扫描二维码并解析

    2016年6月29日补充: 最近做了一些与表单相关的项目,使用了h5的input控件,在使用过程中遇到了很多的坑.也包括与这篇文章相关的. 首先我们应该知道使用h5新提供的属性getUserMedia ...

  6. web/html5调用摄像头实现二维码扫描效果(代码实例)

    本文给大家介绍如何用web/html5调用摄像头实现二维码扫描的效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 利用html5(navigator.getUserMedia)调 ...

  7. Python实现PC摄像头扫描二维码,让你的电脑变身QR码识读器!

    目录 简介: 源代码: 源代码说明: 效果如下所示: 简介: 使用PC摄像机扫描二维码可以有很多应用场景,例如: 支付宝.微信支付等移动支付方式需要使用二维码进行支付,PC摄像机可以扫描这些支付二维码 ...

  8. 【javascript】浏览器调用摄像头扫二维码踩坑记录

    前言 最近做一个项目需要用浏览器调用摄像头扫二维码,然后就踩了几个坑记录下. 踩坑记录 我一开始发现了zxing这个库,他分为https://www.npmjs.com/package/@zxing/ ...

  9. SLAM无人车通过上摄像头扫描二维码重定位

    SLAM无人车通过上摄像头扫描二维码重定位 slam 无人车扫描二维码重定位initpose 实现原理: 1.内参标定 2.外参标定得到相机相对于小车的安装坐标 3.通过功能包 ar_track_al ...

  10. C# 调用摄像头解析二维码

    上次的二维码项目中,在解析的时候用的是扫码枪自动解析并以键盘形式输出,二次开发及通用性不高.本次项目使用AForge库调用摄像头采集二维码照片,再使用ZXing库解析二维码,较之前通用性更高. 一.调 ...

最新文章

  1. Spring-AOP @AspectJ语法基础
  2. 游戏打包过程枯燥且繁琐,如何提升打包效率?
  3. 【STM32】系统配置控制器相关函数和类型
  4. 使用 Direct Initial Load 初始化 GoldenGate 同步数据
  5. PAT乙:1009 说反话
  6. one-many和many-one的关系中的inverse的详解
  7. scala 构造_Scala咖喱和自动类型依赖的封闭构造
  8. 再议动态二维数组,通过一句表达式完成矩阵的转置
  9. Chainmaker 查询当前区块高度
  10. EPS学习笔记2----------常用地物绘制基础
  11. 基于matlab的声音个数识别
  12. appium简明教程
  13. cobar mysql 性能,Cobar + MySQL 技術驗證(li)
  14. LOJ#6070. 「2017 山东一轮集训 Day4」基因 解题报告
  15. 普通人如何获得第一桶金
  16. python-opencv下读取影像释放内存
  17. 修改linu主机名后 启动tomcat服务报Unable to set localhost. This prevents creation of a GUID. Cause was: qudaogua
  18. matlab44矩阵,如何在MATLAB中将2X2矩阵转换为4X4矩阵?
  19. 盘点 2021 年十大网络安全事件
  20. MySQL limit 1,1的含义

热门文章

  1. java程序员语录_2019精选java程序员语录大全
  2. remoting的Client如果访问IIS宿主server端要通过Firewall怎么办?
  3. 联想小新触摸板驱动_联想lenovo笔记本触摸板驱动-联想触摸驱动 win7版下载16.2.5.0 官方版-西西软件下载...
  4. 《FLUENT 14.0超级学习手册》——3.2 Gambit的应用
  5. 策略模式详解(用java语言实现策略模式)
  6. Dataway接口配置服务,去掉后台,从此告别Controller、Service、Mapping
  7. K8S集群Calico网络组件报错BIRD is not ready: BGP not established with
  8. 免费数据恢复软件恢复SanDisk丢失的资料
  9. 博客目录及最新Github下载地址
  10. kitti数据集介绍论文Vision meets Robotics: The KITTI Dataset