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

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

  • 小程序后台添加插件
  • 在开放社区购买相应的套餐
  • 详细步骤
    • 1.在app.config.js中添加如下代码
    • 2.在页面的page.config.js添加插件
    • 3.使用ocr-navigator识别身份证

小程序后台添加插件

Taro使用微信OCR插件无法调用onSuccess回调问题_第1张图片

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

购买地址

详细步骤

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识别身份证


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

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

JSX事件绑定语法 模板绑定语法 事件名称
bindmyEvent myEvent
  • Vue 绑定事件时虽然支持 -,但对大小写不敏感。因此针对不同的事件名需要编写不同的 Vue Template 语法,大小写敏感时同样也需要使用 bind 属性进行 hack 处理:
Vue Template 语法 模板绑定语法 事件名称
bindmyEvent myEvent

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


        
      

你可能感兴趣的:(taro,原生组件,事件派发,ocr-navigator)