uniapp+vue3+ts--编写微信小程序对接e签宝签署时跳转刷脸效果(人脸识别)中间页代码

uniapp+vue3+ts--编写微信小程序对接e签宝签署时跳转刷脸效果(人脸识别)中间页代码

e签宝内嵌H5方式集成签署页的文档说明:https://open.esign.cn/doc/opendoc/case3/ahb0sg

签署时跳转刷脸效果示意图:

1. 在文件夹新建一个文件,路径为pages/middle/index,并在pages.json中注册。【ps这个路径要跟e签宝后台定义的中间页路径一致】

2.通过上面文档步骤进行相关代码编写,下面是完整的代码。

javascript 复制代码
<template>
    <view class="middlePageContainer">
        <view class="loading-content">
            <view class="image-content">
                <u-loading mode="flower" :show="true"></u-loading>
            </view>
            <view class="loading-tect-content">
                <text class="loading-text">加载中...</text>
            </view>
        </view>
        <view class="btn-content">
            <text>如未成功跳转,</text>
            <text class="btn-click" @click="goFaceAuth">点击此处</text>
            <text>手动跳转</text>
        </view>
    </view>
</template>

<script lang="ts" setup>
import { onShow, onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
const bizToken = ref('')
const redirectUrl = ref('')
const goFaceDone = ref(false) // 已跳转至公证签做人脸

onLoad((e: any) => {
    bizToken.value = e.bizToken
    redirectUrl.value = decodeURIComponent(e.redirectUrl)
    goFaceAuth()
})
const goFaceAuth = () => {
    uni.navigateToMiniProgram({
        appId: 'wx1cf2708c2de46337', // 公证签小程序APPID
        path: `/pages/face/index?bizToken=${bizToken.value}`, // 刷脸页面地址
        success(res: any) {
            goFaceDone.value = true
        }
    })
}

onShow(() => {
    console.log('---middle onShow')
    // 防止从实名/意愿页进入后直接返回
    if (!goFaceDone.value) return
    // 如果已经跳转过,重置
    goFaceDone.value = false
    // getEnterOptionsSync 方法从基础库 2.9.4 开始支持,低版本需做兼容处理
    const options = uni.getEnterOptionsSync()
    console.log('---options', options)
    // 从公证签小程序返回
    if (
        options.scene === 1038 &&
        options.referrerInfo.extraData &&
        options.referrerInfo.extraData.faceResult
    ) {
        const pages = getCurrentPages() //当前页的数据
        // console.log(pages[pages.length - 2],'5132123312');
        const pre = pages[pages.length - 2] as any //上个页面 (扫脸的页面)
        // 重新加载实名页面
        console.log(pre, 'pre')
        if (pre.data.reloadPage && typeof pre.data.reloadPage === 'function') {
            // pre.$vm.src = redirectUrl + `&timeStamp=${new Date().getTime()}`
            pre.$vm.src = redirectUrl.value + `&timeStamp=${new Date().getTime()}`
            // pre.reloadPage(redirectUrl + `&timeStamp=${new Date().getTime()}`)
            uni.navigateBack({
                delta: 1
            })
        }
    }
})
</script>

<style lang="scss" scoped>
.middlePageContainer {
    width: 100%;
    height: 100%;
    .loading-content {
        padding-top: 10vh;
        text-align: center;
        width: 100%;
    }
    .image {
        width: 172rpx;
        height: 186rpx;
    }
    .loading-tect-content {
        font-size: 28rpx;
        margin-top: 48rpx;
        color: #333;
    }

    .btn-content {
        font-size: 28rpx;
        color: #333;
        margin-top: 24rpx;
        text-align: center;
    }
    .btn-click {
        color: #095fe0;
    }
}
</style>

页面效果图:

代码编写完之后再次调用后就可以使用刷脸功能了!

相关推荐
AI品信智慧数智人1 小时前
文旅景区小程序集成数字人智能语音交互系统,山东品信解锁AI伴游新玩法✨
人工智能·小程序
医疗信息化王工2 小时前
钉钉小程序开发实战:投诉管理系统
小程序·钉钉·开发·投诉管理
灵机一物5 小时前
灵机一物AI原生电商小程序(已上线)-从“48 小时失联”到“长期可触达”:一套小程序公众号关注引导 + 订阅消息授权的产品化设计
小程序
碎像5 小时前
掌握uniapp发布微信小程序、App(Android)
微信小程序·小程序·uni-app
stpzhf5 小时前
uniapp nvue组件多个text在一行并且高亮其中一些文字
前端·javascript·uni-app
qq_316837755 小时前
制作uniapp原生插件 在本地离线打包中测试 集成在云打包中
uni-app
程序媛徐师姐6 小时前
Java基于SSM的实验室管理微信小程序,附源码+文档说明
java·微信小程序·实验室管理·实验室管理微信小程序·java实验室管理微信小程序·java实验室管理小程序·实验室管理小程序
CHU7290351 天前
生鲜团购商城小程序:新鲜触手可及的便捷购物新体验
小程序
医疗信息化王工1 天前
钉钉小程序开发实战:手术查询小程序
小程序·钉钉·手术查询
Fate_I_C1 天前
uniappx 鸿蒙运行包制作失败
华为·uni-app·uniapp·harmonyos