async launchExperienceQuestionnaire()

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());
    }
  }