remaxjs / remax

使用真正的 React 构建跨平台小程序
https://remaxjs.github.io/remax/
MIT License
4.57k stars 364 forks source link

微信调整了获取昵称与头像策略,相对应api为及时更新(如:button open-type="chooseAvatar"以及他的回调事件bindchooseavatar) #1930

Open FlynnZhouZz opened 2 years ago

FlynnZhouZz commented 2 years ago

需求描述 微信小程序官网 获取昵称和头像指引

微信基础库2.21.2之后新增的button属性值和回调方法不能使用。

希望remax团队能够及时同步更新并发版,因为我有项目需要此功能。

FlynnZhouZz commented 2 years ago

因为项目紧急,等不及Remax官方团队更新 Button chooseAvatar的支持,我更改了Remax依赖包实现了获取用户微信头像功能,大致步骤如下:

解决 获取用户头像Reamx暂不支持问题,即 Button openType='chooseAvatar' onChooseavatar={}功能无效问题?

解决方法:
其实根本只是找到类型声明文件,声明对应可选值以及对应类型。之后再组件模板节点和cjs节点添加事件回调方法名即可。
1/ 编辑Reamx源码文件node_modules/@remax/wechat/esm/hostComponents/Button/index.d.ts,找到openType?,在feedback可选值之后添加chooseAvatar可选值;
2/ 依然是步骤1文件,找到onLaunchApp?,在其下方添加onChooseavatar?: (event: GenericEvent) => any;代码;

3/ 编辑Reamx源码文件node_modules/@remax/wechat/esm/hostComponents/Button/node.d.ts,找到onLaunchApp,在其下方添加onChooseavatar: string;
4/ 编辑Reamx源码文件node_modules/@remax/wechat/esm/hostComponents/Button/node.ts,找到onLaunchApp,在其下方添加onChooseavatar: 'bindchooseavatar',

5/ 编辑Reamx源码文件node_modules/@remax/wechat/cjs/hostComponents/Button/node.d.ts,找到onLaunchApp,在其下方添加onChooseavatar: string;
6/ 编辑Reamx源码文件node_modules/@remax/wechat/cjs/hostComponents/Button/node.ts,找到onLaunchApp,在其下方添加onChooseavatar: 'bindchooseavatar',

说明:其中核心步骤为4/6,如果对代码没有太高要求,只想实现效果,不强求代码是否匹配eslint,可以忽略1/2/3/5步骤。

当前版本信息:

remax版本@2.15.14 小程序端@微信小程序 小程序基础库@2.25.0 微信开发者工具@1.06 开发环境@Maxos

希望能够帮助遇到同样问题的开发者!

watsonhaw5566 commented 2 years ago

要不试试尝试提一下PR @IFromHell

ccba commented 1 year ago

这个什么时候发布?