useUpdateManager
获取全局唯一版本更新管理器
何时使用
管理小程序更新机制。
API
useUpdateManager((manager, updateInfo) => {
// do something
});
参数
当更新信息变化的回调
返回值说明
返回值 | 说明 | 类型 |
---|---|---|
manager | 更新管理器实例 | UpdateManager |
updateInfo | 当前更新信息的状态 | UpdateInfo |
UpdateInfo
返回值 | 说明 | 类型 |
---|---|---|
hasUpdate | 是否有新版本 | boolean |
error | 是否申请更新失败 | boolean |
ready | 是否准备好更新 | boolean |
代码演示
- React
- Vue
wechat/useUpdateManager/index
import React from 'react';
import { useUpdateManager, useModal } from 'taro-hooks';
import DemoContent from '@src/components/DemoContent';
import { View } from '@tarojs/components';
export default () => {
const show = useModal({ mask: true, title: '更新', showCancel: false });
useUpdateManager((manager, { hasUpdate, error, ready }) => {
if (error) {
show({ content: '更新失败, 请重试!' }).then(() => {
manager.applyUpdate();
});
return;
}
if (ready) {
show({ content: '新版本已经准备好, 是否重启?', showCancel: true }).then(
(res) => {
if (res.confirm) {
manager.applyUpdate();
}
},
);
return;
}
if (hasUpdate) {
show({ content: '检测到新版本, 是否更新?', showCancel: true });
}
});
return (
<DemoContent>
<View>检查更新中....</View>
</DemoContent>
);
};
wechat/useUpdateManager/index
<template>
<demo-content>
<view>检查更新中....</view>
</demo-content>
</template>
<script setup lang="ts">
import { useUpdateManager, useModal } from 'taro-hooks';
const show = useModal({ mask: true, title: '更新', showCancel: false });
useUpdateManager((manager, { hasUpdate, error, ready }) => {
if (error) {
show({ content: '更新失败, 请重试!' }).then(() => {
manager.applyUpdate();
});
return;
}
if (ready) {
show({ content: '新版本已经准备好, 是否重启?', showCancel: true }).then(
(res) => {
if (res.confirm) {
manager.applyUpdate();
}
},
);
return;
}
if (hasUpdate) {
show({ content: '检测到新版本, 是否更新?', showCancel: true });
}
});
</script>
Hook 支持度
微信小程序 | H5 | ReactNative |
---|---|---|
✔️ |