This commit is contained in:
2025-09-04 14:02:09 +08:00
parent 0d0bf4bb3a
commit 3daf6c32b5
2 changed files with 638 additions and 334 deletions

443
App.vue
View File

@@ -1,175 +1,310 @@
<script>
import { iap } from "@/utils/myIapCheck.js";
import store from "@/store/index.js";
import socket from "@/config/socket";
// #ifdef H5
import { h5Login } from "@/config/html5Utils";
// #endif
// #ifdef APP-PLUS
import updata from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
// #endif
Vue.prototype.$apkUrl = "https://a.app.qq.com/o/simple.jsp?pkgname=com.cn.taimed" // 应用宝
import Vue from "vue";
export default {
data() {
return {
platform: null, // 系统
appRegisterMap: undefined,
};
},
onLaunch: function() {
// #ifdef APP-PLUS
updata();
plus.screen.lockOrientation("portrait-primary");
// 检测自动更新
// #endif
uni.setStorageSync("isJump", null);
// 禁止横屏
uni.getSystemInfo({
success(res) {
Vue.prototype.winWidth = res.screenWidth;
Vue.prototype.winHeight = res.screenHeight;
Vue.prototype.statusBarHeight = res.statusBarHeight;
},
});
// #ifdef APP-PLUS
var jpushModule = uni.requireNativePlugin("JG-JPush");
var audioObj = uni.getBackgroundAudioManager();
// #endif
import {
iap
} from "@/utils/myIapCheck.js";
import store from "@/store/index.js";
import socket from "@/config/socket";
// #ifdef H5
import {
h5Login
} from "@/config/html5Utils";
// #endif
// #ifdef APP-PLUS
import updata from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
// #endif
Vue.prototype.$apkUrl = "https://a.app.qq.com/o/simple.jsp?pkgname=com.cn.taimed" // 应用宝
import Vue from "vue";
export default {
data() {
return {
platform: null, // 系统
appRegisterMap: undefined,
};
},
onLaunch: function() {
// #ifdef APP-PLUS
updata();
plus.screen.lockOrientation("portrait-primary");
// 检测自动更新
//取出缓存数据
store.commit("setCacheData");
// #ifdef MP-WEIXIN
if (store.state.userInfo.token) {
socket.init();
}
// #endif
// #ifdef H5
if (store.state.userInfo.token) {
socket.init();
} else {
h5Login("force", () => {
socket.init();
});
}
// #endif
// #ifdef APP-PLUS
if (store.state.userInfo.token) {
socket.init();
}
// #endif
},
onShow: function(e) {
// #ifdef APP-PLUS
plus.screen.lockOrientation("portrait-primary");
// 检测是否有未关闭苹果内购订单
iap.getChannels()
// #endif
// #ifdef MP-WEIXIN
//获取二维码携带的参数
let scene = decodeURIComponent(e.query.scene);
scene = scene.split("&");
let data = {
//场景值
scene: e.scene,
};
scene.forEach((item) => {
let arr = item.split("=");
if (arr.length == 2) {
data[arr[0]] = arr[1];
}
});
store.commit("setChatScenesInfo", Object.assign(e.query, data));
// #endif
},methods: {
// #endif
uni.setStorageSync("isJump", null);
// 禁止横屏
uni.getSystemInfo({
success(res) {
Vue.prototype.winWidth = res.screenWidth;
Vue.prototype.winHeight = res.screenHeight;
Vue.prototype.statusBarHeight = res.statusBarHeight;
},
});
//取出缓存数据
store.commit("setCacheData");
// #ifdef MP-WEIXIN
if (store.state.userInfo.token) {
socket.init();
}
// #endif
// #ifdef H5
if (store.state.userInfo.token) {
socket.init();
} else {
h5Login("force", () => {
socket.init();
});
}
// #endif
// #ifdef APP-PLUS
if (store.state.userInfo.token) {
socket.init();
}
// #endif
},
onShow: function(e) {
// #ifdef APP-PLUS
plus.screen.lockOrientation("portrait-primary");
// 检测是否有未关闭苹果内购订单
iap.getChannels()
// #endif
// #ifdef MP-WEIXIN
//获取二维码携带的参数
let scene = decodeURIComponent(e.query.scene);
scene = scene.split("&");
let data = {
//场景值
scene: e.scene,
};
scene.forEach((item) => {
let arr = item.split("=");
if (arr.length == 2) {
data[arr[0]] = arr[1];
}
});
store.commit("setChatScenesInfo", Object.assign(e.query, data));
// #endif
},
methods: {
// 处理通知权限
getRegistrationID() { //获取registerID
jpushModule.getRegistrationID(result => {
let registerID = result.registerID
console.log(registerID)
this.registrationID = registerID
uni.setStorageSync("registerID", registerID)
})
},
getNotificationEnabled() {
if (uni.getSystemInfoSync().platform == "ios") {
jpushModule.requestNotificationAuthorization((result) => {
let status = result.status
if (status < 2) {
this.noticMsgTool()
}
})
} else {
jpushModule.isNotificationEnabled((result) => { //判断android是否打开权限
if (result.code == 0) { //如果为0则表示 未打开通知权限
this.noticMsgTool()
}
})
}
},
noticMsgTool() {
if (uni.getSystemInfoSync().platform == "ios") {
//苹果打开对应的通知栏
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);
}
}
});
} else {
//android打开对应的通知栏
var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var uid = main.getApplicationInfo().plusGetAttribute("uid");
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);
}
}
});
}
},
},
onLaunch() {
// #ifdef APP-PLUS
jpushModule.initJPushService();
jpushModule.setLoggerEnable(true);
plus.screen.lockOrientation("portrait-primary");
// 设置别名
jpushModule.setAlias({
'alias': this.lxzl.getUserInfo().userId + '',
'sequence': 1
})
//监听 极光推送连接状态
this.getNotificationEnabled();
jpushModule.addConnectEventListener(result => {
let connectEnable = result.connectEnable
uni.$emit('connectStatusChange', connectEnable)
});
jpushModule.addNotificationListener(result => { //极光推送的消息通知回调
jpushModule.setBadge(0);
plus.runtime.setBadgeNumber(0);
let notificationEventType = result.notificationEventType
let woopId = result.extras && result.extras.dataType === 'woop' && result.extras.value;
console.log("通知", result, notificationEventType)
// 点击事件
if (notificationEventType == 'notificationOpened') {
uni.navigateTo({
url: '/pages/taskDetail/taskDetail?' + 'woopId=' + woopId
});
}
});
uni.$on('connectStatusChange', (connectStatus) => {
var connectStr = ''
if (connectStatus == true) {
connectStr = '已连接'
// this.getRegistrationID()
} else {
connectStr = '未连接'
}
console.log('监听到了连接状态变化 --- ', connectStr)
this.connectStatus = connectStr
})
jpushModule.isPushStopped(res => {
// code 0已停止推送 1未停止推送
const {
code
} = res
console.log(res, '安卓连接状态');
})
onHide: function() {
console.log('App Hide')
},
//页面销毁
destroyed() {
store.commit("setUserInfo", {
playFlag: true,
});
},
}
},
onHide: function() {
console.log('App Hide')
},
//页面销毁
destroyed() {
store.commit("setUserInfo", {
playFlag: true,
});
},
}
</script>
<style lang="scss">
@import "@/uni_modules/uview-ui/index.scss";
@import "@/uni_modules/uni-scss/index.scss";
/* #ifndef APP-PLUS-NVUE */
/* uni.css - 通用组件、模板样式库可以当作一套ui库应用 */
@import "@/static/uni.css";
@import "@/static/customicons.css";
@import "@/static/common.scss";
@import "@/uni_modules/uview-ui/index.scss";
@import "@/uni_modules/uni-scss/index.scss";
/* #ifndef APP-PLUS-NVUE */
/* uni.css - 通用组件、模板样式库可以当作一套ui库应用 */
@import "@/static/uni.css";
@import "@/static/customicons.css";
@import "@/static/common.scss";
/* H5 兼容 pc 所需 */
/* #ifdef H5 */
@media screen and (min-width: 768px) {
body {
overflow-y: scroll;
}
}
/deep/uni-page-body {
background-color: $themeBgColor;
min-height: 100% !important;
height: 100% !important;
}
/* H5 兼容 pc 所需 */
/* #ifdef H5 */
@media screen and (min-width: 768px) {
body {
overflow-y: scroll;
}
}
.uni-top-window uni-tabbar .uni-tabbar {
background-color: #fff !important;
}
/deep/uni-page-body {
background-color: $themeBgColor;
min-height: 100% !important;
height: 100% !important;
}
.uni-app--showleftwindow .hideOnPc {
display: none !important;
}
.uni-top-window uni-tabbar .uni-tabbar {
background-color: #fff !important;
}
/* #endif */
.uni-app--showleftwindow .hideOnPc {
display: none !important;
}
/* 以下样式用于 hello uni-app 演示所需 */
page {
height: 100%;
font-size: 28rpx;
}
/* #endif */
.fix-pc-padding {
padding: 0 50px;
}
/* 以下样式用于 hello uni-app 演示所需 */
page {
height: 100%;
font-size: 28rpx;
}
.uni-header-logo {
padding: 30rpx;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 10rpx;
}
.fix-pc-padding {
padding: 0 50px;
}
.uni-header-image {
width: 100px;
height: 100px;
}
.uni-header-logo {
padding: 30rpx;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 10rpx;
}
.uni-hello-text {
color: #7a7e83;
}
.uni-header-image {
width: 100px;
height: 100px;
}
.uni-hello-addfile {
text-align: center;
line-height: 300rpx;
background: #fff;
padding: 50rpx;
margin-top: 10px;
font-size: 38rpx;
color: #808080;
}
.uni-hello-text {
color: #7a7e83;
}
/* #endif*/
.uni-hello-addfile {
text-align: center;
line-height: 300rpx;
background: #fff;
padding: 50rpx;
margin-top: 10px;
font-size: 38rpx;
color: #808080;
}
/deep/ .uni-tabbar__label {
font-size: 12px !important; /* 修改 tabBar 文字大小 */
}
</style>
/* #endif*/
/deep/ .uni-tabbar__label {
font-size: 12px !important;
/* 修改 tabBar 文字大小 */
}
</style>