UNPKG

press-next

Version:

Vue3 组件库,支持 Composition API

86 lines (74 loc) 1.91 kB
export function initQQMiniPlugin() { // #ifdef MP-WEIXIN const plugin = getQQWXMiniPlugin(); plugin.initPlugin(wx); return plugin; // #endif } export function getQQWXMiniPlugin() { const plugin = requirePlugin('qq-wxmini-plugin'); plugin.initPlugin(wx); return plugin; } export function checkIsQQEnv() { const plugin = getQQWXMiniPlugin(); const isQQEnv = plugin.isQQEnv(); console.info('isQQEnv', isQQEnv); return isQQEnv; } const getWxCode = (resolve: any, reject: any) => { uni.login({ provider: 'weixin', success: (res) => { resolve({ selectWX: true, wxCode: res.code, }); }, fail: (err) => { reject(err); }, }); }; export function selectLoginTypeInWxMini(ignoreWxEnv = false): Promise<{ selectQQ?: boolean; selectWX?: boolean; qqCode?: string; wxCode?: string; }> { return new Promise((resolve, reject) => { const isQQEnv = checkIsQQEnv(); console.info('selectLoginTypeInWxMini.isQQEnv', isQQEnv); if (!ignoreWxEnv && !isQQEnv) { getWxCode(resolve, reject); return; } wx.showActionSheet({ itemList: ['QQ账号登录', '微信账号登录'], success(res: { tapIndex: number }) { console.info('showActionSheet.res', res); if (res.tapIndex == 0) { const plugin = getQQWXMiniPlugin(); plugin.login() .then((res: { code: string }) => { console.info('plugin.login.res', res); resolve({ selectQQ: true, qqCode: res.code, }); }) .catch((err: any) => { console.info('plugin.login.err', err); reject(err); // 异常处理 }); return; } getWxCode(resolve, reject); }, fail(err: any) { reject(err); }, }); }); }