feat:修改接口缓存

This commit is contained in:
zheng020 2026-08-03 17:20:55 +08:00
parent 9e02001496
commit 7dc9aef5be
2 changed files with 122 additions and 100 deletions

View File

@ -160,7 +160,10 @@
// - _downloads/upgrade_*.{wgt,apk,ipa}" "
// upgrade-popup#cleanupAfterInstall
this.setPermissions();
// 2026-08-03 UniPush/
// Android 13+ areNotificationsEnabled=false
// ""
// this.setPermissions();
// #ifdef APP-PLUS
// deep link:iOS UniversalLinks / Android App Links launchOptions
@ -452,104 +455,110 @@
// #endif
},
setPermissions() {
// #ifdef APP-PLUS
if (plus.os.name == "Android") {
// Android
var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var uid = main.getApplicationInfo().plusGetAttribute("uid");
var NotificationManagerCompat = plus.android.importClass(
"android.support.v4.app.NotificationManagerCompat",
);
//android.support.v4androidx
if (NotificationManagerCompat == null) {
NotificationManagerCompat = plus.android.importClass(
"androidx.core.app.NotificationManagerCompat",
);
}
var areNotificationsEnabled =
NotificationManagerCompat.from(main).areNotificationsEnabled();
//
if (!areNotificationsEnabled) {
uni.showModal({
title: "通知权限开启提醒",
content: "您还没有开启通知权限,无法接受到消息通知,请前往设置!",
showCancel: false,
confirmText: "去设置",
success: function(res) {
if (res.confirm) {
var Intent = plus.android.importClass("android.content.Intent");
var Build = plus.android.importClass("android.os.Build");
//android 8.0
if (Build.VERSION.SDK_INT >= 26) {
var intent = new Intent(
"android.settings.APP_NOTIFICATION_SETTINGS",
);
intent.putExtra("android.provider.extra.APP_PACKAGE", pkName);
} else if (Build.VERSION.SDK_INT >= 21) {
//android 5.0-7.0
var intent = new Intent(
"android.settings.APP_NOTIFICATION_SETTINGS",
);
intent.putExtra("app_package", pkName);
intent.putExtra("app_uid", uid);
} else {
//(<21)--
intent.setAction(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
);
var uri = Uri.fromParts(
"package",
mainActivity.getPackageName(),
null,
);
intent.setData(uri);
}
//
main.startActivity(intent);
}
},
});
}
} else if (plus.os.name == "iOS") {
// ISO
var isOn = undefined;
var types = 0;
var app = plus.ios.invoke("UIApplication", "sharedApplication");
var settings = plus.ios.invoke(app, "currentUserNotificationSettings");
if (settings) {
types = settings.plusGetAttribute("types");
plus.ios.deleteObject(settings);
} else {
types = plus.ios.invoke(app, "enabledRemoteNotificationTypes");
}
plus.ios.deleteObject(app);
isOn = 0 != types;
if (isOn == false) {
uni.showModal({
title: "通知权限开启提醒",
content: "您还没有开启通知权限,无法接受到消息通知,请前往设置!",
showCancel: false,
confirmText: "去设置",
success: function(res) {
if (res.confirm) {
var app = plus.ios.invoke("UIApplication", "sharedApplication");
var setting = plus.ios.invoke(
"NSURL",
"URLWithString:",
"app-settings:",
);
plus.ios.invoke(app, "openURL:", setting);
plus.ios.deleteObject(setting);
plus.ios.deleteObject(app);
}
},
});
}
}
// #endif
},
//
// setPermissions() 2026-08-03
// UniPush/
// Android 13+ areNotificationsEnabled=false
//
//
// setPermissions() {
// // #ifdef APP-PLUS
// if (plus.os.name == "Android") {
// // Android
// var main = plus.android.runtimeMainActivity();
// var pkName = main.getPackageName();
// var uid = main.getApplicationInfo().plusGetAttribute("uid");
// var NotificationManagerCompat = plus.android.importClass(
// "android.support.v4.app.NotificationManagerCompat",
// );
// //android.support.v4androidx
// if (NotificationManagerCompat == null) {
// NotificationManagerCompat = plus.android.importClass(
// "androidx.core.app.NotificationManagerCompat",
// );
// }
// var areNotificationsEnabled =
// NotificationManagerCompat.from(main).areNotificationsEnabled();
// //
// if (!areNotificationsEnabled) {
// uni.showModal({
// title: "",
// content: "",
// showCancel: false,
// confirmText: "",
// success: function(res) {
// if (res.confirm) {
// var Intent = plus.android.importClass("android.content.Intent");
// var Build = plus.android.importClass("android.os.Build");
// //android 8.0
// if (Build.VERSION.SDK_INT >= 26) {
// var intent = new Intent(
// "android.settings.APP_NOTIFICATION_SETTINGS",
// );
// intent.putExtra("android.provider.extra.APP_PACKAGE", pkName);
// } else if (Build.VERSION.SDK_INT >= 21) {
// //android 5.0-7.0
// var intent = new Intent(
// "android.settings.APP_NOTIFICATION_SETTINGS",
// );
// intent.putExtra("app_package", pkName);
// intent.putExtra("app_uid", uid);
// } else {
// //(<21)--
// intent.setAction(
// Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
// );
// var uri = Uri.fromParts(
// "package",
// mainActivity.getPackageName(),
// null,
// );
// intent.setData(uri);
// }
// //
// main.startActivity(intent);
// }
// },
// });
// }
// } else if (plus.os.name == "iOS") {
// // ISO
// var isOn = undefined;
// var types = 0;
// var app = plus.ios.invoke("UIApplication", "sharedApplication");
// var settings = plus.ios.invoke(app, "currentUserNotificationSettings");
// if (settings) {
// types = settings.plusGetAttribute("types");
// plus.ios.deleteObject(settings);
// } else {
// types = plus.ios.invoke(app, "enabledRemoteNotificationTypes");
// }
// plus.ios.deleteObject(app);
// isOn = 0 != types;
// if (isOn == false) {
// uni.showModal({
// title: "",
// content: "",
// showCancel: false,
// confirmText: "",
// success: function(res) {
// if (res.confirm) {
// var app = plus.ios.invoke("UIApplication", "sharedApplication");
// var setting = plus.ios.invoke(
// "NSURL",
// "URLWithString:",
// "app-settings:",
// );
// plus.ios.invoke(app, "openURL:", setting);
// plus.ios.deleteObject(setting);
// plus.ios.deleteObject(app);
// }
// },
// });
// }
// }
// // #endif
// },
},
};
</script>

View File

@ -125,6 +125,7 @@ import { useBanner } from "./composables/useBanner.js";
import { useBackgroundRefresh } from "@/composables/useBackgroundRefresh.js";
import { doubleTapLike } from "@/utils/likeHelper.js";
import { getPreloadApi } from "@/utils/preloadApi/index";
import { invalidate } from "@/utils/preloadApi/core";
import checkUpdate from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
@ -198,9 +199,21 @@ const likingMap = ref({});
const outerScrollTop = ref(0);
// tab scroll-view scrollTop,
watch(activeContentTab, () => {
// 2026-08-03: tab
// /(), tab v-if + usePreload,
// get() 5 TTL ," tab "
// watch flush:'pre' , invalidate key,
// get() (, fetch )
const TAB_PRELOAD_KEYS = {
xinghe: "ranking.xinghe",
xingbang: "ranking.xingbang",
guangchang: "inspiration.flow",
};
watch(activeContentTab, (newTab) => {
// / scroll-y=false, scrollTop
outerScrollTop.value = 0;
const preloadKey = TAB_PRELOAD_KEYS[newTab];
if (preloadKey) invalidate(preloadKey);
});
// scroll CreationGrid fixed