Taro使用微信OCR插件无法调用onSuccess回调问题

小程序后台添加插件

在这里插入图片描述

在开放社区购买相应的套餐

购买地址

详细步骤

1.在app.config.js中添加如下代码

plugins: {
    'ocr-plugin': {
      version: '3.1.5',
      provider: 'wx4418e3e031e551be',
    },
  },

2.在页面的page.config.js添加插件

usingComponents: {
    'ocr-navigator': 'plugin://ocr-plugin/ocr-navigator',
  },

3.使用ocr-navigator识别身份证

<ocr-navigator
  @onSuccess="handleSuccess"
   certificateType="idCard"
   :opposite="false"
 >
   <button>点击上传正面</button>
 </ocr-navigator>
  • 问题来了官方文档上原生组件使用的是bind:onSuccess=“success” 改成vue模板应该就是@onSuccess 可实际情况是身份证识别成功了但为进入
    onSuccess回调。纳闷了很久之后发现taro官网文档有详细介绍原生组件派发事件的例子:
  • 小程序原生组件派发的事件名区分大小写,并且支持 -。
模板绑定语法事件名称
bindmyEvent / bind:myEventmyEvent
  • 在 JSX 中事件绑定语法为 onCamelCase,它的单一性无法适配小程序原生组件事件名的多样性。

因此 Taro 只能根据开发者 JSX 的事件绑定语法,遵循以下规则生成对应的模板绑定语法(在区分原生组件派发的事件名大小写的情况下,需要使用一个 bind 属性进行 hack 处理):

JSX事件绑定语法模板绑定语法事件名称
<Comp onMyEvent={} bindmyEventbindmyEventmyEvent
  • Vue 绑定事件时虽然支持 -,但对大小写不敏感。因此针对不同的事件名需要编写不同的 Vue Template 语法,大小写敏感时同样也需要使用 bind 属性进行 hack 处理:
Vue Template 语法模板绑定语法事件名称
<comp @myevent=‘’ bindmyEventbindmyEventmyEvent

vue最终添加 bindonSuccess 回调改成小写 @onsuccess

<ocr-navigator
        @onsuccess="handleSuccess"
        bindonSuccess
        certificateType="idCard"
        :opposite="false"
      >
        <button>点击上传正面</button>
      </ocr-navigator>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值