in src/explorer.ts [409:437]
async launchExperienceQuestionnaire() {
const globalState = this.context.globalState;
const lastPromptKey = "lastPromptTime";
const experienceQuestionnaireKey = "questionnaireExpiration";
const questionnaireExpiration = globalState.get(experienceQuestionnaireKey) as any;
// 检查上次提示的时间
const lastPromptTime = globalState.get(lastPromptKey) as any;
// 选择关闭 1天 后执行订阅相关操作会再次触发,选择去反馈或30天内不再弹出则 30 天后才会再次触发
if (!lastPromptTime || Date.now() - lastPromptTime > (questionnaireExpiration || 0) * 24 * 60 * 60 * 1000) {
// 显示信息弹窗
let result = await vscode.window.showInformationMessage(
I18N.src.explorer.feedbackInfo,
I18N.src.explorer.gotoFeedback,
I18N.ide.main.common.close,
I18N.src.explorer.limit30,
);
if (result === I18N.src.explorer.gotoFeedback) {
vscode.env.openExternal(
vscode.Uri.parse("https://g.alicdn.com/aes/tracker-survey-preview/0.0.13/survey.html?pid=fePxMy&id=3486"),
);
globalState.update(experienceQuestionnaireKey, 30);
} else if (result === I18N.src.explorer.limit30) {
globalState.update(experienceQuestionnaireKey, 30);
} else {
globalState.update(experienceQuestionnaireKey, 1);
}
globalState.update(lastPromptKey, Date.now());
}
}