uniapp调用腾讯图形验证码,兼容h5、APP(安卓)

因项目要兼容安卓APP,所以使用webview做成了一个组件
在这里插入图片描述
新建hybrid文件夹,创建要在webview引入的html文件

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport"content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><title>验证码</title><style type="text/css">.app {width: 100%;height: 50px;padding: 20px 10px;}</style></head><body bgcolor="#121110"><div class="app"><!-- <img data-action="navigateBack" style="width: 50rpx;" src="../../static/common/Button_FangHui.png" mode="widthFix"> --><!-- <button class="btn" type="button" data-action="navigateBack">返回 </button> --></div><!-- uni 的 SDK --><!-- 需要把 uni.webview.1.5.4.js 下载到自己的服务器 --><script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script><script type="text/javascript" src="https://turing.captcha.qcloud.com/TCaptcha.js"></script><script>document.addEventListener('UniAppJSBridgeReady', function() {	//确认是否加载好了TencentCaptchalet appid = 'xxxxx'; // 腾讯云控制台中对应这个项目的 appidlet callback = function(res) {//下面方法h5和APP都可以调用 不行的话可以在网页端添加通信// if(window && window.parent && window.parent.postMessage){// 	console.log(res);// 	window.parent.postMessage( res,'*');// }if (uni) {uni.postMessage({data: res});}}let captcha = new TencentCaptcha(appid, callback);// 滑块显示captcha.show();//有返回按钮需要的可以添加点击事件,本项目做成组件获取到所需code后直接调用发送验证码api,下面方法不需要document.querySelector('.app').addEventListener('click', function(evt) {var target = evt.target;var action = target.getAttribute('data-action');switch (action) { case 'navigateBack':uni.navigateBack({delta: 1});break;default:break;}});});</script></body>
</html>

创建vue组件

<template><view><web-view src="/hybrid/html/verification.html"  @message="message" ></web-view></view>
</template>
<script setup lang="ts">const $emit = defineEmits(['getCode'])//h5端uniapp会触发这个事件// #ifdef H5window.addEventListener('message',function(e){getCode(e.data.data.arg)})
// #endif//APP端uniapp会调用下面这个方法
const message = function(res) { //接收网页传给uniapp组件的参数getCode(res.detail.data[0])
}
//向父组件传值
const getCode=(data) => {$emit('getCode',data)
}</script>

父组件引入验证组件并添加需要调用的方法

//父组件引入验证组件并添加需要调用的方法
<verificationVue v-if="isShowVerification" @getCode='getCode'></verificationVue>import  verificationCodeInput  from '@/common/verificationCodeInput.vue'

本文参考https://blog.csdn.net/weixin_47403101/article/details/133070811

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/575586.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

08_会话技术

文章目录 前置知识点会话技术Conversation客户端技术CookieCookie的格式Cookie的优缺点构造Cookie信息通过浏览器构造Cookie通过Postman构造Cookie通过服务器构造Cookie 获取Cookie信息Cookie中的信息PathDomainMaxAge 案例&#xff08;cookie相关&#xff09; 服务器技术Sessi…

<el-table>设置一列为固定字段,其他列为循环生成

<el-table :data"tableData" style"width: 100%"><el-table-columnprop"name"label"固定字段名":formatter"formatter"></el-table-column><el-table-columnv-for"(item, index) in wordsColumns…

Redis命令介绍

一、redis启动&#xff1a; 本地启动&#xff1a;redis-cli 远程启动&#xff1a;redis-cli -h host -p port -a password Redis 连接命令 1 AUTH password 验证密码是否正确 2 ECHO message 打印字符串 3 PING 查看服务是否运行 4 QUIT 关闭当前连接 5 SELECT index 切换…

Intellij IDEA安装配置Spark与运行

目录 Scala配置教程 配置Spark运行环境 编写Spark程序 1、包和导入 2、定义对象 3、主函数 4、创建Spark配置和上下文 5、定义输入文件路径 6、单词计数逻辑 7、输出结果 8、完整代码&#xff1a; Scala配置教程 IDEA配置Scala&#xff1a;教程 配置Spark运行环境 …

玫瑰图和雷达图(自备)

目录 玫瑰图 数据格式 绘图基础 绘图升级&#xff08;文本调整&#xff09; 玫瑰图 下载数据data/2020/2020-11-24 mirrors_rfordatascience/tidytuesday - 码云 - 开源中国 (gitee.com) R语言绘图—南丁格尔玫瑰图 - 知乎 (zhihu.com) 数据格式 rm(list ls()) libr…

【冥想X理工科思维】场景13:系统上线遭遇崩溃…

冥想音频合集&#xff1a;职场解压冥想音频 压力场景&#xff1a; 我搭建的系统刚刚在客户那边上线不到三天&#xff0c;系统就崩溃了&#xff0c;客户打电话来对我破口大骂&#xff0c;我该如何借助冥想调整面对客户时的压力&#xff1f; 点击看大图&#xff1a; 详细说明&…

深入Spark与LDA:大规模文本主题分析实战

使用LDA模型和Spark进行文本主题分析 本篇博客介绍了如何使用LDA&#xff08;潜在狄利克雷分配&#xff09;模型和Spark进行文本主题分析。我们的目标是从大量的用户评论中提取出主题。 1. 环境设置 首先&#xff0c;我们需要导入所需的库&#xff0c;包括jieba&#xff08;…

MySQL---触发器

一、介绍 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触…

OpenHarmony实战开发-从0到1实现购物应用页面

概述 OpenHarmony ArkUI框架提供了丰富的动画组件和接口&#xff0c;开发者可以根据实际场景和开发需求&#xff0c;选用丰富的动画组件和接口来实现不同的动画效果。 本Codelab中&#xff0c;我们会构建一个简易的购物应用。应用包含两级页面&#xff0c;分别是主页&#xf…

微信小程序被删除的文件一编译又回来了

一开始创建错了位置&#xff0c;就想着删除文件重新创建&#xff0c;但是没想到每次重新编译的时候&#xff0c;之前被删除的js、wsml文件就又回来了&#xff0c;后来发现是我在app.json中的pages里面的代码没有被删除。 因为我最开始创建错了&#xff0c;快捷创建了页面&#…

010——服务器开发环境搭建及开发方法(下)

目录 三、 第一个驱动程序 四、 buildroot 4.1 制作根文件系统 4.2 buildroot使用 五、 uboot 009——服务器开发环境搭建及开发方法&#xff08;上&#xff09;-CSDN博客 三、 第一个驱动程序 # 1. 使用不同的开发板内核时, 一定要修改KERN_DIR # 2. KERN_DIR中的内核要…

如何使用OpenHarmony实现视频暂停、播放、切换、倍速播放

介绍 本篇Codelab使用ArkTS语言实现视频播放器&#xff0c;主要包括主页面和视频播放页面&#xff0c;我们将一起完成以下功能&#xff1a; 获取本地视频和网络视频。通过AVPlayer进行视频播放。通过手势调节屏幕亮度和视频播放音量。 相关概念 AVPlayer&#xff1a;播放管理…