UNPKG

@slan-health/taro-vueuse

Version:

taro vue版本hooks

52 lines (51 loc) 1.63 kB
import { getEnv, getUpdateManager } from "@tarojs/taro"; import useModal from "../useModal/index.js"; import useToast from "../useToast/index.js"; import { ENV_TYPE } from "../constant.js"; function useUpdateManager({ onCheckForUpdate, onUpdateReady, onUpdateFailed } = {}) { const env = getEnv(); const updateManagerInstance = getUpdateManager(); const [{ showNoneAsync }] = useToast(); const [show] = useModal({ title: "更新提示", content: "新版本已经准备好,是否重启应用?" }); const onDefaultCheckForUpdate = (manager, result) => { if (result.hasUpdate) { showNoneAsync("检测到有新版本正在更新..."); } }; const onDefaultUpdateReady = () => { show().then(() => { updateManagerInstance.applyUpdate(); }); }; const onDefaultUpdateFailed = () => { showNoneAsync("新版本下载失败,请稍后重试!"); }; const addEventListener = () => { if (env === ENV_TYPE.WEAPP) { updateManagerInstance.onCheckForUpdate((result) => { (onCheckForUpdate ?? onDefaultCheckForUpdate)(updateManagerInstance, result); }); updateManagerInstance.onUpdateReady(() => { (onUpdateReady ?? onDefaultUpdateReady)(updateManagerInstance); }); updateManagerInstance.onUpdateFailed(() => { (onUpdateFailed ?? onDefaultUpdateFailed)(updateManagerInstance); }); } else { console.log(`此hooks只为小程序提供,当前环境为${env}`); } }; addEventListener(); return updateManagerInstance; } export { useUpdateManager as default }; //# sourceMappingURL=index.js.map