ai-clone/frontend-ai/pages/short-drama/short-drama.vue

74 lines
1.7 KiB
Vue
Raw Normal View History

2026-03-05 14:29:21 +08:00
<template>
<view class="drama-container">
<!-- 嵌入网页 -->
<web-view :src="dramaUrl"></web-view>
</view>
</template>
<script>
import { API_BASE, API_ENDPOINTS } from '@/config/api.js';
export default {
data() {
return {
// 默认使用用户指定的短剧链接
dramaUrl: 'https://djcps.meinvclk.top/'
};
},
onLoad() {
// 暂时注释掉动态加载强制使用默认URL
// this.loadDramaUrl();
},
methods: {
async loadDramaUrl() {
try {
// 先从本地存储读取缓存
const cachedConfig = uni.getStorageSync('appConfig');
if (cachedConfig && cachedConfig.app && cachedConfig.app.dramaUrl) {
this.dramaUrl = cachedConfig.app.dramaUrl;
return;
}
// 从后端获取最新配置(公开接口,不需要认证)
const res = await uni.request({
url: `${API_BASE}${API_ENDPOINTS.config.getAppConfig}`,
method: 'GET',
header: {
'Content-Type': 'application/json'
// 不添加认证头,因为这是公开接口
}
});
// 兼容不同平台的返回格式:可能是 [error, res] 或直接是 res
const response = Array.isArray(res) ? res[1] : res;
if (response && response.data && response.data.success && response.data.data) {
const config = response.data.data;
uni.setStorageSync('appConfig', config);
if (config.app && config.app.dramaUrl) {
this.dramaUrl = config.app.dramaUrl;
}
}
} catch (error) {
console.error('加载短剧URL失败:', error);
}
}
}
};
</script>
<style lang="scss" scoped>
.drama-container {
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
}
web-view {
flex: 1;
width: 100%;
height: 100vh;
}
</style>