Taro使用微信OCR插件无法调用onSuccess回调问题
Taro使用微信插件无法调用onSuccess回调问题
- 小程序后台添加插件
- 在开放社区购买相应的套餐
- 详细步骤
- 1.在app.config.js中添加如下代码
- 2.在页面的page.config.js添加插件
- 3.使用ocr-navigator识别身份证
小程序后台添加插件
在开放社区购买相应的套餐
购买地址
详细步骤
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:myEvent | myEvent |
- 在 JSX 中事件绑定语法为 onCamelCase,它的单一性无法适配小程序原生组件事件名的多样性。
因此 Taro 只能根据开发者 JSX 的事件绑定语法,遵循以下规则生成对应的模板绑定语法(在区分原生组件派发的事件名大小写的情况下,需要使用一个 bind 属性进行 hack 处理):
JSX事件绑定语法 | 模板绑定语法 | 事件名称 |
---|---|---|
<Comp onMyEvent={} bindmyEvent | bindmyEvent | myEvent |
- Vue 绑定事件时虽然支持 -,但对大小写不敏感。因此针对不同的事件名需要编写不同的 Vue Template 语法,大小写敏感时同样也需要使用 bind 属性进行 hack 处理:
Vue Template 语法 | 模板绑定语法 | 事件名称 |
---|---|---|
<comp @myevent=‘’ bindmyEvent | bindmyEvent | myEvent |
vue最终添加 bindonSuccess 回调改成小写 @onsuccess
<ocr-navigator@onsuccess="handleSuccess"bindonSuccesscertificateType="idCard":opposite="false"><button>点击上传正面</button></ocr-navigator>