一点心 發表於 2021-7-13 18:11:00

uni-app app端 人脸识别

<p class="md-end-block md-p md-focus"><span class="md-tab"> <span class="md-plain">在听到人脸识别,连忙去看看,去阿里 腾讯 看他们的人脸识别方法,官方sdk什么的。</span></span></p>
<p class="md-end-block md-p md-focus"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"> <span class="md-plain"> 到后来,需求确定了,拍照(照片)上传,后台去识别是不是本人,这一瞬间从天堂到地狱,放着官方那么好的方法,不要。</span></span></span></span></span></p>
<p class="md-end-block md-p md-focus"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"> <span class="md-plain"> 用照片,还的自己去写,去实现。</span></span></span></span></span></span></span></span></p>
<p class="md-end-block md-p md-focus"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"> <span class="md-plain"> 下面为大家提供一个 uni-app 自动拍照 上传照片 后端做匹配处理。</span></span></span></span></span></span></span></span></span></span></span></p>
<p class="md-end-block md-p md-focus"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"><span class="md-plain"><span class="md-softbreak"><span class="md-tab"> <span class="md-plain"> 参考插件市场的 <span class="md-link md-pair-s">https://ext.dcloud.net.cn/plugin?id=4892</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<h3 class="md-end-block md-heading"><span class="md-plain">在使用前 先去manifest.json 选择APP模块配置, 勾选直播推流</span></h3>
<h3 class="md-end-block md-heading"><span class="md-plain"><img src="https://img2020.cnblogs.com/blog/2237618/202107/2237618-20210713180105766-1235686586.png" alt="" loading="lazy"></span></h3>
<p class="md-end-block md-p"><span class="md-pair-s "><strong>直接采用nvue开发,直接使用live-pusher组件进行直播推流,如果是vue开发,则需要使用h5+的plus.video.LivePusher对象来获取</strong></span></p>
<h3 class="md-end-block md-heading"><span class="md-plain">nuve js注意事项</span></h3>
<p class="md-end-block md-p"><span class="md-plain">注意nuve 页面 main.js 的封装函数 。无法直接调用(小程序其他的端没有测试)</span></p>
<p class="md-end-block md-p"><span class="md-plain">在APP端 this.api报错,显示是undefined,难道nvue页面,要重新引入api文件</span></p>
<p class="md-end-block md-p"><span class="md-plain">在APP端,main.js中挂载Vuex在nvue页面无法使用this.$store.state.xxx</span></p>
<p class="md-end-block md-p"><span class="md-plain">简单粗暴点直接用uni.getStorageSync 重新获取一遍</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">//获取用户数据 userInfo在Data里定义
this.userInfo = uni.getStorageSync('userInfo')</pre>
</div>
<h3 class="md-end-block md-heading"><span class="md-plain">nuve css注意事项</span></h3>
<p class="md-end-block md-p"><span class="md-plain">单位只支持px</span></p>
<p class="md-end-block md-p md-focus"><span class="md-plain md-expand">其他的em,rem,pt,%,upx 都不支持</span></p>
<p class="md-end-block md-p"><span class="md-pair-s"><strong>需要重新引入外部css</strong></span></p>
<p class="md-end-block md-p"><span class="md-plain">不支持使用 import 的方式引入外部 css</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;">&lt;style src="@/common/test.css"&gt;&lt;/style&gt;
</pre>
</div>
<p> <strong><span class="md-plain">默认flex布</span></strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 0, 1)">display: flex; //不需要写
//直接用下面的标签
flex-direction: column;
align-items: center;
justify-content: space-between;</span></pre>
</div>
<h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">页面样式</span></h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">view </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="live-camera"</span><span style="color: rgba(255, 0, 0, 1)"> :style</span><span style="color: rgba(0, 0, 255, 1)">="{ width: windowWidth, height: windowHeight }"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">view </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="title"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span><span style="color: rgba(0, 0, 0, 1)">
            {{second}}秒之后开始识别
      </span><span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">view</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">view </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="preview"</span><span style="color: rgba(255, 0, 0, 1)"> :style</span><span style="color: rgba(0, 0, 255, 1)">="{ width: windowWidth, height: windowHeight-80 }"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">live-pusher </span><span style="color: rgba(255, 0, 0, 1)">id</span><span style="color: rgba(0, 0, 255, 1)">="livePusher"</span><span style="color: rgba(255, 0, 0, 1)"> ref</span><span style="color: rgba(0, 0, 255, 1)">="livePusher"</span><span style="color: rgba(255, 0, 0, 1)"> class</span><span style="color: rgba(0, 0, 255, 1)">="livePusher"</span><span style="color: rgba(255, 0, 0, 1)"> mode</span><span style="color: rgba(0, 0, 255, 1)">="FHD"</span><span style="color: rgba(255, 0, 0, 1)"> beauty</span><span style="color: rgba(0, 0, 255, 1)">="1"</span><span style="color: rgba(255, 0, 0, 1)"> whiteness</span><span style="color: rgba(0, 0, 255, 1)">="0"</span><span style="color: rgba(255, 0, 0, 1)">
                aspect</span><span style="color: rgba(0, 0, 255, 1)">="2:3"</span><span style="color: rgba(255, 0, 0, 1)"> min-bitrate</span><span style="color: rgba(0, 0, 255, 1)">="1000"</span><span style="color: rgba(255, 0, 0, 1)"> audio-quality</span><span style="color: rgba(0, 0, 255, 1)">="16KHz"</span><span style="color: rgba(255, 0, 0, 1)"> :auto-focus</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(255, 0, 0, 1)"> :muted</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(255, 0, 0, 1)">
                :enable-camera</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(255, 0, 0, 1)"> :enable-mic</span><span style="color: rgba(0, 0, 255, 1)">="false"</span><span style="color: rgba(255, 0, 0, 1)"> :zoom</span><span style="color: rgba(0, 0, 255, 1)">="false"</span><span style="color: rgba(255, 0, 0, 1)"> @statechange</span><span style="color: rgba(0, 0, 255, 1)">="statechange"</span><span style="color: rgba(255, 0, 0, 1)">
                :style</span><span style="color: rgba(0, 0, 255, 1)">="{ width: cameraWidth, height: cameraHeight }"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">live-pusher</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

            <span style="color: rgba(0, 128, 0, 1)">&lt;!--</span><span style="color: rgba(0, 128, 0, 1)">提示语</span><span style="color: rgba(0, 128, 0, 1)">--&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">cover-view </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="remind"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
                <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">text </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="remind-text"</span><span style="color: rgba(255, 0, 0, 1)"> style</span><span style="color: rgba(0, 0, 255, 1)">=""</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>{{ message }}<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">cover-view</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

            <span style="color: rgba(0, 128, 0, 1)">&lt;!--</span><span style="color: rgba(0, 128, 0, 1)">辅助线</span><span style="color: rgba(0, 128, 0, 1)">--&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">cover-view </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="outline-box"</span><span style="color: rgba(255, 0, 0, 1)"> :style</span><span style="color: rgba(0, 0, 255, 1)">="{ width: windowWidth, height: windowHeight-80 }"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
                <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">cover-image </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="outline-img"</span><span style="color: rgba(255, 0, 0, 1)"> src</span><span style="color: rgba(0, 0, 255, 1)">="../../static/idphotoskin.png"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">cover-image</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">cover-view</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">view</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">view</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">JS部分</span>&lt;script&gt;<span>&nbsp; &nbsp; import operate from </span>'../../common/operate.js'<span>&nbsp; &nbsp; import api from </span>'../../common/api.js'</h3>
<div class="cnblogs_code">
<pre><em><em><em><span style="color: rgba(0, 0, 0, 1)">    export </span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
      data() {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">提示</span>
                message: ''<span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">相机画面宽度</span>
                cameraWidth: ''<span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">相机画面宽度</span>
                cameraHeight: ''<span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">屏幕可用宽度</span>
                windowWidth: ''<span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">屏幕可用高度</span>
                windowHeight: ''<span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">流视频对象</span>
                livePusher: <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">照片</span>
                snapshotsrc: <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">倒计时</span>
                second: 0<span style="color: rgba(0, 0, 0, 1)">,
                ifPhoto: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 用户信息</span>
<span style="color: rgba(0, 0, 0, 1)">                userInfo: []
            };
      },
      onLoad() {
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取屏幕高度</span>
            <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.initCamera();
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取用户数据</span>
            <span style="color: rgba(0, 0, 255, 1)">this</span>.userInfo = uni.getStorageSync('userInfo'<span style="color: rgba(0, 0, 0, 1)">)
            setTimeout(() </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">倒计时</span>
                <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.getCount()
            }, </span>500<span style="color: rgba(0, 0, 0, 1)">)
      },
      onReady() {
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('初始化 直播组件');</span>
            <span style="color: rgba(0, 0, 255, 1)">this</span>.livePusher = uni.createLivePusherContext('livePusher', <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">);
      },
      onShow() {
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">开启预览并设置摄像头<br></span>       /*<br>        * 2023年12月28日 <br>        * 在最新的APP上面这个周期 比</em></em></em><em id="__mceDel">onReady 直播初始要早执行 故而第二次进入页面 相机启动失败</em><em><em><em><em> <br>        * 把该方法 移步到 </em></em></em></em><em id="__mceDel"><em id="__mceDel">onReady 即可</em></em></pre>
<pre><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel">        */  <br></em></em></em></em><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><span style="color: rgba(0, 0, 255, 1)">        this</span><span>.startPreview();</span></em></em></em></em></em></pre>
<pre><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><span style="color: rgba(0, 0, 0, 1)">      },
      methods: {
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取屏幕高度</span>
<span style="color: rgba(0, 0, 0, 1)">            initCamera() {
                let that </span>= <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">
                uni.getSystemInfo({
                  success: </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(res) {
                        that.windowWidth </span>=<span style="color: rgba(0, 0, 0, 1)"> res.windowWidth;
                        that.windowHeight </span>=<span style="color: rgba(0, 0, 0, 1)"> res.windowHeight;
                        that.cameraWidth </span>=<span style="color: rgba(0, 0, 0, 1)"> res.windowWidth;
                        that.cameraHeight </span>= res.windowWidth * 1.5<span style="color: rgba(0, 0, 0, 1)">;
                  }
                });
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">启动相机</span>
<span style="color: rgba(0, 0, 0, 1)">            startPreview() {
                </span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.livePusher.startPreview({
                  success(res) {
                        console.log(</span>'启动相机'<span style="color: rgba(0, 0, 0, 1)">, res)
                  }
                });
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">停止相机</span>
<span style="color: rgba(0, 0, 0, 1)">            stopPreview() {
                let that </span>= <span style="color: rgba(0, 0, 255, 1)">this</span>
                <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.livePusher.stopPreview({
                  success(res) {
                        console.log(</span>'停止相机'<span style="color: rgba(0, 0, 0, 1)">, res)
                  }
                });
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">摄像头 状态</span>
<span style="color: rgba(0, 0, 0, 1)">            statechange(e) {
                console.log(</span>'摄像头'<span style="color: rgba(0, 0, 0, 1)">, e);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">this</span>.ifPhoto == <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">) {
                  </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">拍照</span>
                  <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.snapshot()
                }
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">抓拍</span>
<span style="color: rgba(0, 0, 0, 1)">            snapshot() {
                let that </span>= <span style="color: rgba(0, 0, 255, 1)">this</span>
                <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.livePusher.snapshot({
                  success(res) {
                        that.snapshotsrc </span>=<span style="color: rgba(0, 0, 0, 1)"> res.message.tempImagePath;
                        that.uploadingImg(res.message.tempImagePath)
                  }
                });
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 倒计时</span>
<span style="color: rgba(0, 0, 0, 1)">            getCount() {
                </span><span style="color: rgba(0, 0, 255, 1)">this</span>.second = 5<span style="color: rgba(0, 0, 0, 1)">
                let timer </span>= setInterval(() =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">this</span>.second--<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">this</span>.second &lt; 1<span style="color: rgba(0, 0, 0, 1)">) {
                        clearInterval(timer);
                        </span><span style="color: rgba(0, 0, 255, 1)">this</span>.second = 0
                        <span style="color: rgba(0, 0, 255, 1)">this</span>.ifPhoto = <span style="color: rgba(0, 0, 255, 1)">true</span>
                        <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.statechange()
                  }
                }, </span>1000<span style="color: rgba(0, 0, 0, 1)">)
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 图片上传</span>
<span style="color: rgba(0, 0, 0, 1)">            uploadingImg(e) {
                let url </span>=<span style="color: rgba(0, 0, 0, 1)"> e
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(url);</span>
                let that = <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">
                uni.uploadFile({
                  url: operate.api </span>+ 'api/common/upload'<span style="color: rgba(0, 0, 0, 1)">,
                  filePath: url,
                  name: </span>'file'<span style="color: rgba(0, 0, 0, 1)">,
                  formData: {
                        token: that.userInfo.token
                  },
                  success(res) {
                        </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(res);</span>
                        let list =<span style="color: rgba(0, 0, 0, 1)"> JSON.parse(res.data)
                        </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(list);</span>
<span style="color: rgba(0, 0, 0, 1)">                        that.request(list.data.fullurl)
                  }
                })
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">验证请求</span>
<span style="color: rgba(0, 0, 0, 1)">            request(url) {
                let data </span>=<span style="color: rgba(0, 0, 0, 1)"> {
                  token: </span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.userInfo.token,
                  photo: url
                }
                api.renzheng(data).then((res) </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(res);</span>
<span style="color: rgba(0, 0, 0, 1)">                  operate.toast({
                        title: res.data.msg
                  })
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (res.data.code == 1<span style="color: rgba(0, 0, 0, 1)">) {
                        setTimeout(() </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                            operate.redirectTo(</span>'/pages/details/details'<span style="color: rgba(0, 0, 0, 1)">)
                        }, </span>500<span style="color: rgba(0, 0, 0, 1)">)
                  }
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (res.data.code == 0<span style="color: rgba(0, 0, 0, 1)">) {
                        setTimeout(() </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                            </span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.anew(res.data.msg)
                        }, </span>500<span style="color: rgba(0, 0, 0, 1)">)
                  }
                })
            },
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 认证失败,重新认证</span>
<span style="color: rgba(0, 0, 0, 1)">            anew(msg) {
                let that </span>= <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">
                uni.showModal({
                  content: msg,
                  confirmText: </span>'重新审核'<span style="color: rgba(0, 0, 0, 1)">,
                  success(res) {
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.confirm) {
                            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('用户点击确定');</span>
<span style="color: rgba(0, 0, 0, 1)">                            that.getCount()
                        } </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.cancel) {
                            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('用户点击取消');</span>
<span style="color: rgba(0, 0, 0, 1)">                            uni.navigateBack({
                              delta: </span>1<span style="color: rgba(0, 0, 0, 1)">
                            })
                        }
                  }
                })
            },
      }
    };
</span>&lt;/script&gt;</em></em></em></em></em></pre>
</div>
<h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">css 样式</span></h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 0, 1)">&lt;style lang="scss"&gt;
    // 标题
    .title </span>{<span style="color: rgba(255, 0, 0, 1)">
      font-size</span>:<span style="color: rgba(0, 0, 255, 1)"> 35rpx</span>;<span style="color: rgba(255, 0, 0, 1)">
      align-items</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">
      justify-content</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;
    }<span style="color: rgba(128, 0, 0, 1)">

    .live-camera </span>{<span style="color: rgba(255, 0, 0, 1)">
      .preview {
            justify-content</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">
            align-items</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">

            .outline-box {
                position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;<span style="color: rgba(255, 0, 0, 1)">
                top</span>:<span style="color: rgba(0, 0, 255, 1)"> 0</span>;<span style="color: rgba(255, 0, 0, 1)">
                left</span>:<span style="color: rgba(0, 0, 255, 1)"> 0</span>;<span style="color: rgba(255, 0, 0, 1)">
                bottom</span>:<span style="color: rgba(0, 0, 255, 1)"> 0</span>;<span style="color: rgba(255, 0, 0, 1)">
                z-index</span>:<span style="color: rgba(0, 0, 255, 1)"> 99</span>;<span style="color: rgba(255, 0, 0, 1)">
                align-items</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">
                justify-content</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">

                .outline-img {
                  width</span>:<span style="color: rgba(0, 0, 255, 1)"> 750rpx</span>;<span style="color: rgba(255, 0, 0, 1)">
                  height</span>:<span style="color: rgba(0, 0, 255, 1)"> 1125rpx</span>;
                }<span style="color: rgba(128, 0, 0, 1)">
            }

            .remind </span>{<span style="color: rgba(255, 0, 0, 1)">
                position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;<span style="color: rgba(255, 0, 0, 1)">
                top</span>:<span style="color: rgba(0, 0, 255, 1)"> 880rpx</span>;<span style="color: rgba(255, 0, 0, 1)">
                width</span>:<span style="color: rgba(0, 0, 255, 1)"> 750rpx</span>;<span style="color: rgba(255, 0, 0, 1)">
                z-index</span>:<span style="color: rgba(0, 0, 255, 1)"> 100</span>;<span style="color: rgba(255, 0, 0, 1)">
                align-items</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">
                justify-content</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;<span style="color: rgba(255, 0, 0, 1)">

                .remind-text {
                  color</span>:<span style="color: rgba(0, 0, 255, 1)"> #dddddd</span>;<span style="color: rgba(255, 0, 0, 1)">
                  font-weight</span>:<span style="color: rgba(0, 0, 255, 1)"> bold</span>;
                }<span style="color: rgba(128, 0, 0, 1)">
            }
      }
    }
&lt;/style&gt;</span></pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/2237618/202107/2237618-20210713181028816-711610927.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:虚乄,转载请注明原文链接:https://www.cnblogs.com/lovejielive/p/15007797.html</p><br><br>
来源:https://www.cnblogs.com/lovejielive/p/15007797.html
頁: [1]
查看完整版本: uni-app app端 人脸识别