日志
This commit is contained in:
35
App.vue
35
App.vue
@@ -1,25 +1,28 @@
|
||||
<script>
|
||||
<script>
|
||||
import { write } from '@/uni_modules/yk-log'
|
||||
export default {
|
||||
onLaunch: function() {
|
||||
// #ifdef APP-PLUS
|
||||
plus.screen.lockOrientation('landscape-primary');
|
||||
plus.navigator.setFullscreen(true);
|
||||
// #endif
|
||||
onLaunch: function(options) {
|
||||
write("输出 平台信息");
|
||||
// 检查网络状态
|
||||
uni.getNetworkType({
|
||||
success: (res) => {
|
||||
write("网络类型"+res.networkType);
|
||||
},
|
||||
fail: (err) => {
|
||||
write("获取网络状态失败");
|
||||
}
|
||||
})
|
||||
},
|
||||
onHide: function() {
|
||||
console.log('App Hide')
|
||||
|
||||
onShow: function(options) {
|
||||
write("显示参数"+ JSON.stringify(options));
|
||||
},
|
||||
onUnload() {
|
||||
// #ifdef APP-PLUS
|
||||
plus.screen.lockOrientation('landscape-primary');
|
||||
// #endif
|
||||
|
||||
onPageNotFound: function(res) {
|
||||
write("页面未找到"+ JSON.stringify(res));
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
.debuggerMode{
|
||||
//border: 1px solid red;
|
||||
}
|
||||
</style>
|
||||
|
||||
8
main.js
8
main.js
@@ -5,16 +5,24 @@ import Vue from 'vue'
|
||||
|
||||
Vue.config.productionTip = false
|
||||
App.mpType = 'app'
|
||||
|
||||
console.log('🚀 Vue2应用开始初始化', new Date().toISOString())
|
||||
const app = new Vue({
|
||||
...App
|
||||
})
|
||||
|
||||
console.log('✅ Vue实例创建完成', new Date().toISOString())
|
||||
app.$mount()
|
||||
console.log('✅ Vue实例挂载完成', new Date().toISOString())
|
||||
|
||||
// #endif
|
||||
|
||||
// #ifdef VUE3
|
||||
import { createSSRApp } from 'vue'
|
||||
export function createApp() {
|
||||
console.log('🚀 Vue3应用开始初始化', new Date().toISOString())
|
||||
const app = createSSRApp(App)
|
||||
console.log('✅ Vue3应用实例创建完成', new Date().toISOString())
|
||||
return {
|
||||
app
|
||||
}
|
||||
|
||||
4
uni_modules/yk-log/changelog.md
Normal file
4
uni_modules/yk-log/changelog.md
Normal file
@@ -0,0 +1,4 @@
|
||||
## 1.0.1(2024-10-30)
|
||||
1. 解决中文乱码问题
|
||||
## 1.0.0(2024-10-28)
|
||||
1. 实现日志写入/storage/emulated/0/Android/data/包名/files/Logs中
|
||||
87
uni_modules/yk-log/package.json
Normal file
87
uni_modules/yk-log/package.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"id": "yk-log",
|
||||
"displayName": "yk-log 基于uts实现的安卓日志插件",
|
||||
"version": "1.0.1",
|
||||
"description": "基于uts实现的日志插件,保存日志文件到外部存储的私有目录下,目前Android 10及以下测试可用,10以上未测试",
|
||||
"keywords": [
|
||||
"yk-log",
|
||||
"uts",
|
||||
"日志",
|
||||
"Android"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.91"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "uts",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "0.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": "2466286500"
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "插件不采集任何数据",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"dependencies": [],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y",
|
||||
"alipay": "y"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "y",
|
||||
"vue3": "y"
|
||||
},
|
||||
"App": {
|
||||
"app-android": {
|
||||
"minVersion": "21"
|
||||
},
|
||||
"app-ios": "u"
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "n",
|
||||
"Android Browser": "n",
|
||||
"微信浏览器(Android)": "n",
|
||||
"QQ浏览器(Android)": "n"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "n",
|
||||
"IE": "n",
|
||||
"Edge": "n",
|
||||
"Firefox": "n",
|
||||
"Safari": "n"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "n",
|
||||
"阿里": "n",
|
||||
"百度": "n",
|
||||
"字节跳动": "n",
|
||||
"QQ": "n",
|
||||
"钉钉": "n",
|
||||
"快手": "n",
|
||||
"飞书": "n",
|
||||
"京东": "n"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "n",
|
||||
"联盟": "n"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
31
uni_modules/yk-log/readme.md
Normal file
31
uni_modules/yk-log/readme.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# yk-log
|
||||
目前官方的`TextEncoder`提示不支持,自己写的字符转byteArray方法后面会导致生成的字节数组末尾出现额外的零字节(0),所以日志换行之后会有乱码。
|
||||
|
||||
由于手机坏了只有备用机,目前测试Android 10及以下的版本可以,10以上理论上也可以。
|
||||
|
||||
日志文件存储在 /storage/emulated/0/Android/data/包名/files/Logs 目录中
|
||||
|
||||
### 方法
|
||||
|
||||
| 方法名 | 说明 | 参数 |
|
||||
| ------ | -------------------------------------------- | ---- |
|
||||
| write | 写入日志,yyyy-MM-dd HH:mm:ss.SSS-[传入消息] | text |
|
||||
|
||||
### 使用示例
|
||||
|
||||
```js
|
||||
import { write } from '../../uni_modules/yk-log'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
wirteLog() {
|
||||
write("1111")
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3
uni_modules/yk-log/utssdk/app-android/config.json
Normal file
3
uni_modules/yk-log/utssdk/app-android/config.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"minSdkVersion": "21"
|
||||
}
|
||||
54
uni_modules/yk-log/utssdk/app-android/index.uts
Normal file
54
uni_modules/yk-log/utssdk/app-android/index.uts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { WriteApi } from '../interface';
|
||||
import SimpleDateFormat from 'java.text.SimpleDateFormat';
|
||||
import Locale from 'java.util.Locale';
|
||||
import FileOutputStream from 'java.io.FileOutputStream';
|
||||
import File from 'java.io.File';
|
||||
import Date from "java.util.Date";
|
||||
import OutputStreamWriter from 'java.io.OutputStreamWriter';
|
||||
|
||||
const LOG_DISPLAY_NAME = "app_log.txt";
|
||||
|
||||
// 字符串转Uint8Array
|
||||
function stringToUint8Array(str: string) : ByteArray{
|
||||
const arr: ByteArray = new ByteArray(str.length);
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
arr.set(i.toInt(), str.charCodeAt(i)!!.toByte());
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// 创建消息格式
|
||||
function createMessage(logMessage : string) : string {
|
||||
const timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()).format(new Date());
|
||||
const logEntry = timestamp + " - " + logMessage + "\n";
|
||||
return logEntry
|
||||
}
|
||||
|
||||
// 写入日志
|
||||
export const write : WriteApi = (logMessage : string) => {
|
||||
const context = UTSAndroid.getAppContext();
|
||||
// 获取应用的私有外部存储目录
|
||||
const externalFilesDir = context!!.getExternalFilesDir(null); // type为null表示根目录
|
||||
if (externalFilesDir == null) {
|
||||
// 外部存储不可用或未挂载
|
||||
return;
|
||||
}
|
||||
|
||||
// 指定放在 应用的私有外部存储目录/Logs 目录中
|
||||
const logDir = new File(externalFilesDir, `Logs`);
|
||||
if (!logDir.exists()) {
|
||||
logDir.mkdirs();
|
||||
}
|
||||
|
||||
const nowDay = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
|
||||
const fileName = `${nowDay}_${LOG_DISPLAY_NAME}`;
|
||||
const logFile = new File(logDir, fileName);
|
||||
try {
|
||||
const fos = new FileOutputStream(logFile, true)
|
||||
const oStreamWriter = OutputStreamWriter(fos, 'UTF-8')
|
||||
oStreamWriter.append(createMessage(logMessage));
|
||||
oStreamWriter.close()
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
2
uni_modules/yk-log/utssdk/interface.uts
Normal file
2
uni_modules/yk-log/utssdk/interface.uts
Normal file
@@ -0,0 +1,2 @@
|
||||
/* 写入文件 */
|
||||
export type WriteApi = (logMessage : string) => void
|
||||
@@ -1,79 +1,139 @@
|
||||
<template>
|
||||
<view>
|
||||
<web-view :src="url" @onPostMessage="onMessage" @error="onWebViewError"></web-view>
|
||||
<view v-if="loading" class="loading">页面加载中...</view>
|
||||
<view v-if="loadError" class="error">
|
||||
页面加载失败
|
||||
<button @tap="retryLoad">重新加载</button>
|
||||
<web-view v-if="urlAvailable" :src="url"></web-view>
|
||||
<view v-else class="error-container">
|
||||
<text class="error-text">无法访问目标地址,请检查网络连接</text>
|
||||
<button type="primary" @tap="retryConnection">重试</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { write } from '@/uni_modules/yk-log'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
url: '',
|
||||
originalUrl: 'http://192.168.100.201',
|
||||
loading: true,
|
||||
loadError: false
|
||||
url: 'http://192.168.100.201',
|
||||
urlAvailable: false,
|
||||
logMessages: [] // 用于收集日志
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
this.addLog('🏠 home1页面开始加载')
|
||||
console.log('📄 home1 onLoad 执行', options)
|
||||
this.initWebView()
|
||||
},
|
||||
onReady() {
|
||||
this.addLog('✅ home1页面准备就绪')
|
||||
console.log('✅ home1 onReady 执行')
|
||||
},
|
||||
onShow() {
|
||||
this.addLog('👀 home1页面显示')
|
||||
console.log('✅ home1 onShow 执行')
|
||||
},
|
||||
onHide() {
|
||||
this.addLog('🔚 home1页面隐藏')
|
||||
console.log('🔚 home1 onHide 执行')
|
||||
},
|
||||
onUnload() {
|
||||
this.addLog('🗑️ home1页面卸载')
|
||||
console.log('🗑️ home1 onUnload 执行')
|
||||
},
|
||||
onError(err) {
|
||||
this.addLog('💥 home1页面错误: ' + err)
|
||||
console.error('💥 home1页面错误:', err)
|
||||
},
|
||||
methods: {
|
||||
initWebView() {
|
||||
this.loading = true
|
||||
this.loadError = false
|
||||
addLog(message) {
|
||||
const timestamp = new Date().toLocaleTimeString()
|
||||
this.logMessages.push(`[${timestamp}] ${message}`)
|
||||
console.log(message)
|
||||
write(message)
|
||||
},
|
||||
async initWebView() {
|
||||
this.addLog('🌐 开始初始化WebView')
|
||||
this.addLog(`🔗 检查URL可达性: ${this.url}`)
|
||||
|
||||
const timestamp = new Date().getTime()
|
||||
this.url = `${this.originalUrl}?timestamp=${timestamp}`
|
||||
|
||||
// 设置超时检测
|
||||
setTimeout(() => {
|
||||
if (this.loading) {
|
||||
this.loading = false
|
||||
this.loadError = true
|
||||
}
|
||||
}, 10000) // 10秒超时
|
||||
// 检查URL是否可达
|
||||
const isReachable = await this.checkUrlReachability(this.url)
|
||||
|
||||
if (isReachable) {
|
||||
this.urlAvailable = true
|
||||
this.addLog('✅ URL可达,加载WebView')
|
||||
} else {
|
||||
this.urlAvailable = false
|
||||
this.addLog('❌ URL不可达,显示错误页面')
|
||||
}
|
||||
|
||||
// 监听网络状态变化
|
||||
uni.onNetworkStatusChange((res) => {
|
||||
if (res.isConnected && this.loadError) {
|
||||
this.retryLoad()
|
||||
this.addLog(`📶 网络状态变化: ${res.isConnected ? '已连接' : '未连接'}`)
|
||||
if (res.isConnected) {
|
||||
this.retryConnection()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onWebViewError(e) {
|
||||
console.error('WebView加载错误:', e)
|
||||
this.loading = false
|
||||
this.loadError = true
|
||||
// 检查URL可达性
|
||||
checkUrlReachability(url) {
|
||||
return new Promise((resolve) => {
|
||||
// 方法1: 使用uni.request检查
|
||||
uni.request({
|
||||
url: url,
|
||||
method: 'GET',
|
||||
timeout: 5000,
|
||||
success: (res) => {
|
||||
this.addLog(`✅ URL检查成功,状态码: ${res.statusCode}`)
|
||||
resolve(res.statusCode < 400) // 状态码小于400认为可达
|
||||
},
|
||||
fail: (err) => {
|
||||
if (err.errMsg && err.errMsg.includes('request:fail')) {
|
||||
this.addLog('❌ 网络请求失败')
|
||||
resolve(false)
|
||||
} else {
|
||||
// 其他错误(包括CORS)认为URL基本可达
|
||||
this.addLog(`⚠️ URL可能可达,但有CORS限制: ${err.errMsg}`)
|
||||
resolve(true)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
onMessage(e) {
|
||||
// WebView内部发送的消息,可以用于确认页面加载完成
|
||||
this.loading = false
|
||||
this.loadError = false
|
||||
},
|
||||
|
||||
retryLoad() {
|
||||
this.initWebView()
|
||||
// 重试连接
|
||||
async retryConnection() {
|
||||
this.addLog('🔄 尝试重新连接')
|
||||
const isReachable = await this.checkUrlReachability(this.url)
|
||||
this.urlAvailable = isReachable
|
||||
|
||||
if (isReachable) {
|
||||
this.addLog('✅ 重新连接成功')
|
||||
uni.showToast({
|
||||
title: '连接成功',
|
||||
icon: 'success'
|
||||
})
|
||||
} else {
|
||||
this.addLog('❌ 重新连接失败')
|
||||
uni.showToast({
|
||||
title: '连接失败',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
onUnload() {
|
||||
uni.offNetworkStatusChange()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.loading, .error {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
z-index: 9999;
|
||||
<style scoped>
|
||||
.error-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
}
|
||||
.error-text {
|
||||
font-size: 20px;
|
||||
line-height: 24px;
|
||||
color: #999;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
@@ -1,43 +0,0 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="">
|
||||
<input type="text" class="input" v-model="url">
|
||||
<button type="primary" size="size" @tap="toConfig">跳转</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
url: 'http://192.168.100.201'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toConfig () {
|
||||
let url = '/uni_modules/yykj-tv/pages/home/home' + '?url=' + this.url
|
||||
uni.redirectTo({
|
||||
url: url
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-image: linear-gradient(to bottom, #2E3092, #797979);
|
||||
}
|
||||
.input {
|
||||
width: 50vw;
|
||||
height: 5vh;
|
||||
background-color: #fff;
|
||||
margin-bottom: 2vh;
|
||||
}
|
||||
</style>
|
||||
2
unpackage/cache/apk/apkurl
vendored
2
unpackage/cache/apk/apkurl
vendored
@@ -1 +1 @@
|
||||
https://app.liuyingyong.cn/build/download/2f054da0-4a59-11f0-841e-29b51d871891
|
||||
https://app.liuyingyong.cn/build/download/ff9f1a40-bc6a-11f0-aa46-1b21156b5341
|
||||
2
unpackage/cache/apk/cmManifestCache.json
vendored
2
unpackage/cache/apk/cmManifestCache.json
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
|
||||
;(function(){
|
||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","rpxCalcMaxDeviceWidth":1920,"rpxCalcBaseDeviceWidth":750,"navigationBar":{"backgroundColor":"#F8F8F8","titleText":"","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"tv-pro","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.8.12","entryPagePath":"uni_modules/yykj-tv/pages/home/home1","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","rpxCalcMaxDeviceWidth":1920,"rpxCalcBaseDeviceWidth":750,"navigationBar":{"backgroundColor":"#F8F8F8","titleText":"","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"tv-pro","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.99","entryPagePath":"uni_modules/yykj-tv/pages/home/home1","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"uni_modules/yykj-tv/pages/home/home1","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
__uniConfig.styles=[];//styles
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const r=this.constructor;return this.then((o=>r.resolve(e()).then((()=>o))),(o=>r.resolve(e()).then((()=>{throw o}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function r(e,r,...o){uni.__log__?uni.__log__(e,r,...o):console[e].apply(console,[...o,r])}__definePage("uni_modules/yykj-tv/pages/home/home1",((e,r)=>{const o=e.__vccOpts||e;for(const[n,t]of r)o[n]=t;return o})({data:()=>({url:"",originalUrl:"http://192.168.100.201",loading:!0,loadError:!1}),onLoad(e){this.initWebView()},methods:{initWebView(){this.loading=!0,this.loadError=!1;const e=(new Date).getTime();this.url=`${this.originalUrl}?timestamp=${e}`,setTimeout((()=>{this.loading&&(this.loading=!1,this.loadError=!0)}),1e4),uni.onNetworkStatusChange((e=>{e.isConnected&&this.loadError&&this.retryLoad()}))},onWebViewError(e){r("error","at uni_modules/yykj-tv/pages/home/home1.vue:49","WebView加载错误:",e),this.loading=!1,this.loadError=!0},onMessage(e){this.loading=!1,this.loadError=!1},retryLoad(){this.initWebView()}},onUnload(){uni.offNetworkStatusChange()}},[["render",function(r,o,n,t,i,a){return e.openBlock(),e.createElementBlock("view",null,[e.createElementVNode("web-view",{src:i.url,"on:onPostMessage":o[0]||(o[0]=(...e)=>a.onMessage&&a.onMessage(...e)),onError:o[1]||(o[1]=(...e)=>a.onWebViewError&&a.onWebViewError(...e))},null,40,["src"]),i.loading?(e.openBlock(),e.createElementBlock("view",{key:0,class:"loading"},"页面加载中...")):e.createCommentVNode("",!0),i.loadError?(e.openBlock(),e.createElementBlock("view",{key:1,class:"error"},[e.createTextVNode(" 页面加载失败 "),e.createElementVNode("button",{onClick:o[2]||(o[2]=(...e)=>a.retryLoad&&a.retryLoad(...e))},"重新加载")])):e.createCommentVNode("",!0)])}]]));const o={onLaunch:function(){plus.screen.lockOrientation("landscape-primary"),plus.navigator.setFullscreen(!0)},onHide:function(){r("log","at App.vue:10","App Hide")},onUnload(){plus.screen.lockOrientation("landscape-primary")}};const{app:n,Vuex:t,Pinia:i}={app:e.createVueApp(o)};uni.Vuex=t,uni.Pinia=i,n.provide("__globalStyles",__uniConfig.styles),n._component.mpType="app",n._component.render=()=>{},n.mount("#app")}(Vue);
|
||||
if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((o=>t.resolve(e()).then((()=>o))),(o=>t.resolve(e()).then((()=>{throw o}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e,t,...o){uni.__log__?uni.__log__(e,t,...o):console[e].apply(console,[...o,t])}const{registerUTSInterface:o,initUTSProxyClass:n,initUTSProxyFunction:i,initUTSPackageName:a,initUTSIndexClassName:r,initUTSClassName:s}=uni,l="ykLog",u=i(!1,{moduleName:"yk-log 基于uts实现的安卓日志插件",moduleType:"",errMsg:"",main:!0,package:a(l,true),class:r(l,true),name:"writeByJs",params:[{name:"logMessage",type:"string"}],return:""});__definePage("uni_modules/yykj-tv/pages/home/home1",((e,t)=>{const o=e.__vccOpts||e;for(const[n,i]of t)o[n]=i;return o})({data:()=>({url:"http://192.168.100.201",urlAvailable:!1,logMessages:[]}),onLoad(e){this.addLog("🏠 home1页面开始加载"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:23","📄 home1 onLoad 执行",e),this.initWebView()},onReady(){this.addLog("✅ home1页面准备就绪"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:28","✅ home1 onReady 执行")},onShow(){this.addLog("👀 home1页面显示"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:32","✅ home1 onShow 执行")},onHide(){this.addLog("🔚 home1页面隐藏"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:36","🔚 home1 onHide 执行")},onUnload(){this.addLog("🗑️ home1页面卸载"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:40","🗑️ home1 onUnload 执行")},onError(e){this.addLog("💥 home1页面错误: "+e),t("error","at uni_modules/yykj-tv/pages/home/home1.vue:44","💥 home1页面错误:",e)},methods:{addLog(e){const o=(new Date).toLocaleTimeString();this.logMessages.push(`[${o}] ${e}`),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:50",e),u(e)},async initWebView(){this.addLog("🌐 开始初始化WebView"),this.addLog(`🔗 检查URL可达性: ${this.url}`);await this.checkUrlReachability(this.url)?(this.urlAvailable=!0,this.addLog("✅ URL可达,加载WebView")):(this.urlAvailable=!1,this.addLog("❌ URL不可达,显示错误页面")),uni.onNetworkStatusChange((e=>{this.addLog("📶 网络状态变化: "+(e.isConnected?"已连接":"未连接")),e.isConnected&&this.retryConnection()}))},checkUrlReachability(e){return new Promise((t=>{uni.request({url:e,method:"GET",timeout:5e3,success:e=>{this.addLog(`✅ URL检查成功,状态码: ${e.statusCode}`),t(e.statusCode<400)},fail:e=>{e.errMsg&&e.errMsg.includes("request:fail")?(this.addLog("❌ 网络请求失败"),t(!1)):(this.addLog(`⚠️ URL可能可达,但有CORS限制: ${e.errMsg}`),t(!0))}})}))},async retryConnection(){this.addLog("🔄 尝试重新连接");const e=await this.checkUrlReachability(this.url);this.urlAvailable=e,e?(this.addLog("✅ 重新连接成功"),uni.showToast({title:"连接成功",icon:"success"})):(this.addLog("❌ 重新连接失败"),uni.showToast({title:"连接失败",icon:"none"}))}}},[["render",function(t,o,n,i,a,r){return e.openBlock(),e.createElementBlock("view",null,[a.urlAvailable?(e.openBlock(),e.createElementBlock("web-view",{key:0,src:a.url},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"error-container"},[e.createElementVNode("text",{class:"error-text"},"无法访问目标地址,请检查网络连接"),e.createElementVNode("button",{type:"primary",onClick:o[0]||(o[0]=(...e)=>r.retryConnection&&r.retryConnection(...e))},"重试")]))])}],["__scopeId","data-v-ca20a413"]]));const c={onLaunch:function(e){u("输出 平台信息"),uni.getNetworkType({success:e=>{u("网络类型"+e.networkType)},fail:e=>{u("获取网络状态失败")}})},onShow:function(e){u("显示参数"+JSON.stringify(e))},onPageNotFound:function(e){u("页面未找到"+JSON.stringify(e))}};const{app:h,Vuex:d,Pinia:y}=function(){t("log","at main.js:23","🚀 Vue3应用开始初始化",(new Date).toISOString());const o=e.createVueApp(c);return t("log","at main.js:25","✅ Vue3应用实例创建完成",(new Date).toISOString()),{app:o}}();uni.Vuex=d,uni.Pinia=y,h.provide("__globalStyles",__uniConfig.styles),h._component.mpType="app",h._component.render=()=>{},h.mount("#app")}(Vue);
|
||||
|
||||
3
unpackage/cache/wgt/__UNI__F0A98BD/app.css
vendored
3
unpackage/cache/wgt/__UNI__F0A98BD/app.css
vendored
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__F0A98BD","name":"tv-pro","version":{"name":"1.0.0","code":"100"},"description":"","developer":{"name":"","email":"","url":""},"permissions":{"VideoPlayer":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":"false"}},"google":{"abiFilters":["armeabi-v7a","arm64-v8a","x86"],"minSdkVersion":21,"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>","<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />","<uses-permission android:name=\"android.permission.WRITE_EXTERNA\" />"],"packagename":"uni.UNIF0A98BD","aliasname":"testalias","password":"RoTO2lmypNKc248cqqxg/A==","keystore":"google-keystore.keystore","custompermissions":true},"apple":{"dSYMs":false,"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}},"orientation":"portrait-primary"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"3.8.12","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}},"adid":"127121020808"},"launch_path":"__uniappview.html"}
|
||||
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__F0A98BD","name":"tv-pro","version":{"name":"1.0.0","code":"100"},"description":"","developer":{"name":"","email":"","url":""},"permissions":{"VideoPlayer":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":"false"}},"google":{"abiFilters":["armeabi-v7a","arm64-v8a","x86"],"minSdkVersion":21,"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>","<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />","<uses-permission android:name=\"android.permission.WRITE_EXTERNA\" />"],"packagename":"uni.UNIF0A98BD","aliasname":"testalias","password":"RoTO2lmypNKc248cqqxg/A==","keystore":"google-keystore.keystore","custompermissions":true},"apple":{"dSYMs":false,"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}},"orientation":"portrait-primary"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"3.99","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}},"adid":"127121020808"},"launch_path":"__uniappview.html"}
|
||||
File diff suppressed because one or more lines are too long
3
unpackage/dist/build/.nvue/app.css.js
vendored
3
unpackage/dist/build/.nvue/app.css.js
vendored
@@ -4,8 +4,7 @@ var __commonJS = (cb, mod) => function __require() {
|
||||
};
|
||||
var require_app_css = __commonJS({
|
||||
"app.css.js"(exports) {
|
||||
const _style_0 = {};
|
||||
exports.styles = [_style_0];
|
||||
exports.styles = [];
|
||||
}
|
||||
});
|
||||
export default require_app_css();
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
|
||||
;(function(){
|
||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","rpxCalcMaxDeviceWidth":1920,"rpxCalcBaseDeviceWidth":750,"navigationBar":{"backgroundColor":"#F8F8F8","titleText":"","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"tv-pro","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.8.12","entryPagePath":"uni_modules/yykj-tv/pages/home/home1","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","rpxCalcMaxDeviceWidth":1920,"rpxCalcBaseDeviceWidth":750,"navigationBar":{"backgroundColor":"#F8F8F8","titleText":"","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"tv-pro","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.99","entryPagePath":"uni_modules/yykj-tv/pages/home/home1","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"uni_modules/yykj-tv/pages/home/home1","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
__uniConfig.styles=[];//styles
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
|
||||
2
unpackage/dist/build/app-plus/app-service.js
vendored
2
unpackage/dist/build/app-plus/app-service.js
vendored
@@ -1 +1 @@
|
||||
if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const r=this.constructor;return this.then((o=>r.resolve(e()).then((()=>o))),(o=>r.resolve(e()).then((()=>{throw o}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function r(e,r,...o){uni.__log__?uni.__log__(e,r,...o):console[e].apply(console,[...o,r])}__definePage("uni_modules/yykj-tv/pages/home/home1",((e,r)=>{const o=e.__vccOpts||e;for(const[n,t]of r)o[n]=t;return o})({data:()=>({url:"",originalUrl:"http://192.168.100.201",loading:!0,loadError:!1}),onLoad(e){this.initWebView()},methods:{initWebView(){this.loading=!0,this.loadError=!1;const e=(new Date).getTime();this.url=`${this.originalUrl}?timestamp=${e}`,setTimeout((()=>{this.loading&&(this.loading=!1,this.loadError=!0)}),1e4),uni.onNetworkStatusChange((e=>{e.isConnected&&this.loadError&&this.retryLoad()}))},onWebViewError(e){r("error","at uni_modules/yykj-tv/pages/home/home1.vue:49","WebView加载错误:",e),this.loading=!1,this.loadError=!0},onMessage(e){this.loading=!1,this.loadError=!1},retryLoad(){this.initWebView()}},onUnload(){uni.offNetworkStatusChange()}},[["render",function(r,o,n,t,i,a){return e.openBlock(),e.createElementBlock("view",null,[e.createElementVNode("web-view",{src:i.url,"on:onPostMessage":o[0]||(o[0]=(...e)=>a.onMessage&&a.onMessage(...e)),onError:o[1]||(o[1]=(...e)=>a.onWebViewError&&a.onWebViewError(...e))},null,40,["src"]),i.loading?(e.openBlock(),e.createElementBlock("view",{key:0,class:"loading"},"页面加载中...")):e.createCommentVNode("",!0),i.loadError?(e.openBlock(),e.createElementBlock("view",{key:1,class:"error"},[e.createTextVNode(" 页面加载失败 "),e.createElementVNode("button",{onClick:o[2]||(o[2]=(...e)=>a.retryLoad&&a.retryLoad(...e))},"重新加载")])):e.createCommentVNode("",!0)])}]]));const o={onLaunch:function(){plus.screen.lockOrientation("landscape-primary"),plus.navigator.setFullscreen(!0)},onHide:function(){r("log","at App.vue:10","App Hide")},onUnload(){plus.screen.lockOrientation("landscape-primary")}};const{app:n,Vuex:t,Pinia:i}={app:e.createVueApp(o)};uni.Vuex=t,uni.Pinia=i,n.provide("__globalStyles",__uniConfig.styles),n._component.mpType="app",n._component.render=()=>{},n.mount("#app")}(Vue);
|
||||
if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((o=>t.resolve(e()).then((()=>o))),(o=>t.resolve(e()).then((()=>{throw o}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e,t,...o){uni.__log__?uni.__log__(e,t,...o):console[e].apply(console,[...o,t])}const{registerUTSInterface:o,initUTSProxyClass:n,initUTSProxyFunction:i,initUTSPackageName:a,initUTSIndexClassName:r,initUTSClassName:s}=uni,l="ykLog",u=i(!1,{moduleName:"yk-log 基于uts实现的安卓日志插件",moduleType:"",errMsg:"",main:!0,package:a(l,true),class:r(l,true),name:"writeByJs",params:[{name:"logMessage",type:"string"}],return:""});__definePage("uni_modules/yykj-tv/pages/home/home1",((e,t)=>{const o=e.__vccOpts||e;for(const[n,i]of t)o[n]=i;return o})({data:()=>({url:"http://192.168.100.201",urlAvailable:!1,logMessages:[]}),onLoad(e){this.addLog("🏠 home1页面开始加载"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:23","📄 home1 onLoad 执行",e),this.initWebView()},onReady(){this.addLog("✅ home1页面准备就绪"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:28","✅ home1 onReady 执行")},onShow(){this.addLog("👀 home1页面显示"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:32","✅ home1 onShow 执行")},onHide(){this.addLog("🔚 home1页面隐藏"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:36","🔚 home1 onHide 执行")},onUnload(){this.addLog("🗑️ home1页面卸载"),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:40","🗑️ home1 onUnload 执行")},onError(e){this.addLog("💥 home1页面错误: "+e),t("error","at uni_modules/yykj-tv/pages/home/home1.vue:44","💥 home1页面错误:",e)},methods:{addLog(e){const o=(new Date).toLocaleTimeString();this.logMessages.push(`[${o}] ${e}`),t("log","at uni_modules/yykj-tv/pages/home/home1.vue:50",e),u(e)},async initWebView(){this.addLog("🌐 开始初始化WebView"),this.addLog(`🔗 检查URL可达性: ${this.url}`);await this.checkUrlReachability(this.url)?(this.urlAvailable=!0,this.addLog("✅ URL可达,加载WebView")):(this.urlAvailable=!1,this.addLog("❌ URL不可达,显示错误页面")),uni.onNetworkStatusChange((e=>{this.addLog("📶 网络状态变化: "+(e.isConnected?"已连接":"未连接")),e.isConnected&&this.retryConnection()}))},checkUrlReachability(e){return new Promise((t=>{uni.request({url:e,method:"GET",timeout:5e3,success:e=>{this.addLog(`✅ URL检查成功,状态码: ${e.statusCode}`),t(e.statusCode<400)},fail:e=>{e.errMsg&&e.errMsg.includes("request:fail")?(this.addLog("❌ 网络请求失败"),t(!1)):(this.addLog(`⚠️ URL可能可达,但有CORS限制: ${e.errMsg}`),t(!0))}})}))},async retryConnection(){this.addLog("🔄 尝试重新连接");const e=await this.checkUrlReachability(this.url);this.urlAvailable=e,e?(this.addLog("✅ 重新连接成功"),uni.showToast({title:"连接成功",icon:"success"})):(this.addLog("❌ 重新连接失败"),uni.showToast({title:"连接失败",icon:"none"}))}}},[["render",function(t,o,n,i,a,r){return e.openBlock(),e.createElementBlock("view",null,[a.urlAvailable?(e.openBlock(),e.createElementBlock("web-view",{key:0,src:a.url},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"error-container"},[e.createElementVNode("text",{class:"error-text"},"无法访问目标地址,请检查网络连接"),e.createElementVNode("button",{type:"primary",onClick:o[0]||(o[0]=(...e)=>r.retryConnection&&r.retryConnection(...e))},"重试")]))])}],["__scopeId","data-v-ca20a413"]]));const c={onLaunch:function(e){u("输出 平台信息"),uni.getNetworkType({success:e=>{u("网络类型"+e.networkType)},fail:e=>{u("获取网络状态失败")}})},onShow:function(e){u("显示参数"+JSON.stringify(e))},onPageNotFound:function(e){u("页面未找到"+JSON.stringify(e))}};const{app:h,Vuex:d,Pinia:y}=function(){t("log","at main.js:23","🚀 Vue3应用开始初始化",(new Date).toISOString());const o=e.createVueApp(c);return t("log","at main.js:25","✅ Vue3应用实例创建完成",(new Date).toISOString()),{app:o}}();uni.Vuex=d,uni.Pinia=y,h.provide("__globalStyles",__uniConfig.styles),h._component.mpType="app",h._component.render=()=>{},h.mount("#app")}(Vue);
|
||||
|
||||
3
unpackage/dist/build/app-plus/app.css
vendored
3
unpackage/dist/build/app-plus/app.css
vendored
File diff suppressed because one or more lines are too long
2
unpackage/dist/build/app-plus/manifest.json
vendored
2
unpackage/dist/build/app-plus/manifest.json
vendored
@@ -127,7 +127,7 @@
|
||||
"uni-app": {
|
||||
"control": "uni-v3",
|
||||
"vueVersion": "3",
|
||||
"compilerVersion": "3.8.12",
|
||||
"compilerVersion": "3.99",
|
||||
"nvueCompiler": "uni-app",
|
||||
"renderer": "auto",
|
||||
"nvue": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
3
unpackage/dist/dev/.nvue/app.css.js
vendored
3
unpackage/dist/dev/.nvue/app.css.js
vendored
@@ -4,8 +4,7 @@ var __commonJS = (cb, mod) => function __require() {
|
||||
};
|
||||
var require_app_css = __commonJS({
|
||||
"app.css.js"(exports) {
|
||||
const _style_0 = {};
|
||||
exports.styles = [_style_0];
|
||||
exports.styles = [];
|
||||
}
|
||||
});
|
||||
export default require_app_css();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
;(function(){
|
||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","rpxCalcMaxDeviceWidth":1920,"rpxCalcBaseDeviceWidth":750,"navigationBar":{"backgroundColor":"#F8F8F8","titleText":"","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"yykj-ua-tv-pro","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.8.12","entryPagePath":"uni_modules/yykj-tv/pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"uni_modules/yykj-tv/pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"uni_modules/yykj-tv/pages/home/home","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","rpxCalcMaxDeviceWidth":1920,"rpxCalcBaseDeviceWidth":750,"navigationBar":{"backgroundColor":"#F8F8F8","titleText":"","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"tv-pro","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.8.12","entryPagePath":"uni_modules/yykj-tv/pages/home/home1","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"uni_modules/yykj-tv/pages/home/home1","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
__uniConfig.styles=[];//styles
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
|
||||
176
unpackage/dist/dev/app-plus/app-service.js
vendored
176
unpackage/dist/dev/app-plus/app-service.js
vendored
@@ -31,71 +31,6 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
(function(vue) {
|
||||
"use strict";
|
||||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
const _sfc_main$2 = {
|
||||
data() {
|
||||
return {
|
||||
url: "http://192.168.10.34:8080"
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
toConfig() {
|
||||
let url = "/uni_modules/yykj-tv/pages/home/home?url=" + this.url;
|
||||
uni.redirectTo({
|
||||
url
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [
|
||||
vue.createElementVNode("view", { class: "" }, [
|
||||
vue.withDirectives(vue.createElementVNode(
|
||||
"input",
|
||||
{
|
||||
type: "text",
|
||||
class: "input",
|
||||
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.url = $event)
|
||||
},
|
||||
null,
|
||||
512
|
||||
/* NEED_PATCH */
|
||||
), [
|
||||
[vue.vModelText, $data.url]
|
||||
]),
|
||||
vue.createElementVNode("button", {
|
||||
type: "primary",
|
||||
size: "size",
|
||||
onClick: _cache[1] || (_cache[1] = (...args) => $options.toConfig && $options.toConfig(...args))
|
||||
}, "跳转")
|
||||
])
|
||||
]);
|
||||
}
|
||||
const Uni_modulesYykjTvPagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-7892acfb"], ["__file", "/Users/nuoli/Downloads/yykj-tv_1.0.0_example/uni_modules/yykj-tv/pages/index/index.vue"]]);
|
||||
const _sfc_main$1 = {
|
||||
data() {
|
||||
return {
|
||||
url: ""
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
this.url = options.url;
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", null, [
|
||||
vue.createElementVNode("web-view", { src: $data.url }, null, 8, ["src"])
|
||||
]);
|
||||
}
|
||||
const Uni_modulesYykjTvPagesHomeHome = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "/Users/nuoli/Downloads/yykj-tv_1.0.0_example/uni_modules/yykj-tv/pages/home/home.vue"]]);
|
||||
__definePage("uni_modules/yykj-tv/pages/index/index", Uni_modulesYykjTvPagesIndexIndex);
|
||||
__definePage("uni_modules/yykj-tv/pages/home/home", Uni_modulesYykjTvPagesHomeHome);
|
||||
function formatAppLog(type, filename, ...args) {
|
||||
if (uni.__log__) {
|
||||
uni.__log__(type, filename, ...args);
|
||||
@@ -103,20 +38,115 @@ if (uni.restoreGlobal) {
|
||||
console[type].apply(console, [...args, filename]);
|
||||
}
|
||||
}
|
||||
const _sfc_main = {
|
||||
onLaunch: function() {
|
||||
formatAppLog("log", "at App.vue:4", "App Launch");
|
||||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
const _sfc_main$1 = {
|
||||
data() {
|
||||
return {
|
||||
url: "",
|
||||
originalUrl: "http://192.168.10.38:8080/#/login",
|
||||
logMessages: []
|
||||
// 用于收集日志
|
||||
};
|
||||
},
|
||||
onShow: function() {
|
||||
formatAppLog("log", "at App.vue:7", "App Show");
|
||||
onLoad(options) {
|
||||
this.addLog("🏠 home1页面开始加载");
|
||||
formatAppLog("log", "at uni_modules/yykj-tv/pages/home/home1.vue:18", "📄 home1 onLoad 执行", options);
|
||||
this.initWebView();
|
||||
},
|
||||
onHide: function() {
|
||||
formatAppLog("log", "at App.vue:10", "App Hide");
|
||||
onReady() {
|
||||
this.addLog("✅ home1页面准备就绪");
|
||||
formatAppLog("log", "at uni_modules/yykj-tv/pages/home/home1.vue:23", "✅ home1 onReady 执行");
|
||||
},
|
||||
onShow() {
|
||||
this.addLog("👀 home1页面显示");
|
||||
formatAppLog("log", "at uni_modules/yykj-tv/pages/home/home1.vue:27", "✅ home1 onShow 执行");
|
||||
},
|
||||
onHide() {
|
||||
this.addLog("🔚 home1页面隐藏");
|
||||
formatAppLog("log", "at uni_modules/yykj-tv/pages/home/home1.vue:31", "🔚 home1 onHide 执行");
|
||||
},
|
||||
onUnload() {
|
||||
this.addLog("🗑️ home1页面卸载");
|
||||
formatAppLog("log", "at uni_modules/yykj-tv/pages/home/home1.vue:35", "🗑️ home1 onUnload 执行");
|
||||
},
|
||||
onError(err) {
|
||||
this.addLog("💥 home1页面错误: " + err);
|
||||
formatAppLog("error", "at uni_modules/yykj-tv/pages/home/home1.vue:39", "💥 home1页面错误:", err);
|
||||
},
|
||||
methods: {
|
||||
addLog(message) {
|
||||
const timestamp = (/* @__PURE__ */ new Date()).toLocaleTimeString();
|
||||
this.logMessages.push(`[${timestamp}] ${message}`);
|
||||
formatAppLog("log", "at uni_modules/yykj-tv/pages/home/home1.vue:45", message);
|
||||
},
|
||||
initWebView() {
|
||||
this.addLog("🌐 开始初始化WebView");
|
||||
const timestamp = (/* @__PURE__ */ new Date()).getTime();
|
||||
this.url = `${this.originalUrl}?timestamp=${timestamp}`;
|
||||
this.addLog(`🔗 设置WebView URL: ${this.url}`);
|
||||
uni.onNetworkStatusChange((res) => {
|
||||
this.addLog(`📶 网络状态变化: ${res.isConnected ? "已连接" : "未连接"}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/nuoli/Downloads/yykj-tv_1.0.0_example/App.vue"]]);
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", null, [
|
||||
vue.createElementVNode("web-view", { src: $data.url }, null, 8, ["src"])
|
||||
]);
|
||||
}
|
||||
const Uni_modulesYykjTvPagesHomeHome1 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "/Users/nuoli/Documents/2025work/git/tv-pro/uni_modules/yykj-tv/pages/home/home1.vue"]]);
|
||||
__definePage("uni_modules/yykj-tv/pages/home/home1", Uni_modulesYykjTvPagesHomeHome1);
|
||||
const _sfc_main = {
|
||||
onLaunch: function(options) {
|
||||
formatAppLog("log", "at App.vue:4", "🎯 App onLaunch 开始执行", (/* @__PURE__ */ new Date()).toISOString());
|
||||
formatAppLog("log", "at App.vue:5", "📱 启动参数:", JSON.stringify(options));
|
||||
formatAppLog("log", "at App.vue:6", "🔧 平台信息:", uni.getSystemInfoSync());
|
||||
try {
|
||||
formatAppLog("log", "at App.vue:10", "🔄 设置屏幕方向");
|
||||
plus.screen.lockOrientation("landscape-primary");
|
||||
plus.navigator.setFullscreen(true);
|
||||
formatAppLog("log", "at App.vue:13", "✅ 屏幕方向设置成功");
|
||||
} catch (e) {
|
||||
formatAppLog("error", "at App.vue:15", "❌ 屏幕方向设置失败:", e);
|
||||
}
|
||||
uni.getNetworkType({
|
||||
success: (res) => {
|
||||
formatAppLog("log", "at App.vue:22", "📶 网络类型:", res.networkType);
|
||||
},
|
||||
fail: (err) => {
|
||||
formatAppLog("error", "at App.vue:25", "❌ 获取网络状态失败:", err);
|
||||
}
|
||||
});
|
||||
},
|
||||
onShow: function(options) {
|
||||
formatAppLog("log", "at App.vue:31", "👀 App onShow 执行", (/* @__PURE__ */ new Date()).toISOString());
|
||||
formatAppLog("log", "at App.vue:32", "📱 显示参数:", JSON.stringify(options));
|
||||
},
|
||||
onError: function(error) {
|
||||
formatAppLog("error", "at App.vue:36", "💥 App 全局错误:", error);
|
||||
},
|
||||
onPageNotFound: function(res) {
|
||||
formatAppLog("error", "at App.vue:40", "❌ 页面未找到:", JSON.stringify(res));
|
||||
},
|
||||
onHide: function() {
|
||||
formatAppLog("log", "at App.vue:44", "🔚 App Hide", (/* @__PURE__ */ new Date()).toISOString());
|
||||
},
|
||||
onUnload() {
|
||||
formatAppLog("log", "at App.vue:47", "🗑️ App Unload", (/* @__PURE__ */ new Date()).toISOString());
|
||||
}
|
||||
};
|
||||
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/nuoli/Documents/2025work/git/tv-pro/App.vue"]]);
|
||||
function createApp() {
|
||||
formatAppLog("log", "at main.js:23", "🚀 Vue3应用开始初始化", (/* @__PURE__ */ new Date()).toISOString());
|
||||
const app = vue.createVueApp(App);
|
||||
formatAppLog("log", "at main.js:25", "✅ Vue3应用实例创建完成", (/* @__PURE__ */ new Date()).toISOString());
|
||||
return {
|
||||
app
|
||||
};
|
||||
|
||||
5
unpackage/dist/dev/app-plus/app.css
vendored
5
unpackage/dist/dev/app-plus/app.css
vendored
File diff suppressed because one or more lines are too long
35
unpackage/dist/dev/app-plus/manifest.json
vendored
35
unpackage/dist/dev/app-plus/manifest.json
vendored
@@ -5,7 +5,7 @@
|
||||
"iPad"
|
||||
],
|
||||
"id": "__UNI__F0A98BD",
|
||||
"name": "yykj-ua-tv-pro",
|
||||
"name": "tv-pro",
|
||||
"version": {
|
||||
"name": "1.0.0",
|
||||
"code": "100"
|
||||
@@ -43,6 +43,38 @@
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"distribute": {
|
||||
"icons": {
|
||||
"android": {
|
||||
"hdpi": "unpackage/res/icons/72x72.png",
|
||||
"xhdpi": "unpackage/res/icons/96x96.png",
|
||||
"xxhdpi": "unpackage/res/icons/144x144.png",
|
||||
"xxxhdpi": "unpackage/res/icons/192x192.png"
|
||||
},
|
||||
"ios": {
|
||||
"appstore": "unpackage/res/icons/1024x1024.png",
|
||||
"ipad": {
|
||||
"app": "unpackage/res/icons/76x76.png",
|
||||
"app@2x": "unpackage/res/icons/152x152.png",
|
||||
"notification": "unpackage/res/icons/20x20.png",
|
||||
"notification@2x": "unpackage/res/icons/40x40.png",
|
||||
"proapp@2x": "unpackage/res/icons/167x167.png",
|
||||
"settings": "unpackage/res/icons/29x29.png",
|
||||
"settings@2x": "unpackage/res/icons/58x58.png",
|
||||
"spotlight": "unpackage/res/icons/40x40.png",
|
||||
"spotlight@2x": "unpackage/res/icons/80x80.png"
|
||||
},
|
||||
"iphone": {
|
||||
"app@2x": "unpackage/res/icons/120x120.png",
|
||||
"app@3x": "unpackage/res/icons/180x180.png",
|
||||
"notification@2x": "unpackage/res/icons/40x40.png",
|
||||
"notification@3x": "unpackage/res/icons/60x60.png",
|
||||
"settings@2x": "unpackage/res/icons/58x58.png",
|
||||
"settings@3x": "unpackage/res/icons/87x87.png",
|
||||
"spotlight@2x": "unpackage/res/icons/80x80.png",
|
||||
"spotlight@3x": "unpackage/res/icons/120x120.png"
|
||||
}
|
||||
}
|
||||
},
|
||||
"google": {
|
||||
"permissions": [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
@@ -75,6 +107,7 @@
|
||||
"dSYMs": false
|
||||
},
|
||||
"plugins": {
|
||||
"ad": {},
|
||||
"audio": {
|
||||
"mp3": {
|
||||
"description": "Android平台录音支持MP3格式文件"
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.content[data-v-7892acfb] {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-image: linear-gradient(to bottom, #2E3092, #797979);
|
||||
}
|
||||
.input[data-v-7892acfb] {
|
||||
width: 50vw;
|
||||
height: 5vh;
|
||||
background-color: #fff;
|
||||
margin-bottom: 2vh;
|
||||
}
|
||||
Reference in New Issue
Block a user