分类 默认分类 下的文章

const GMT = +8 // 需要获取0点时间戳的时区
const offsetMs = new Date().getTimezoneOffset()*60*1000 // 系统时区偏移量
const date1 = new Date(new Date().getTime() + GMT*3600*1000)
const ymdUTC = date1.getUTCFullYear()+'/'+(date1.getUTCMonth()+1)+'/'+date1.getUTCDate()
const beginTime = new Date(ymdUTC).getTime() - offsetMs - GMT*3600*1000
const endTime = beginTime + 24*3600*1000 -1 // 当日最后1毫秒时间戳

beginTime即GMT变量对应时区0点的时间戳
可将beginTime拿去 https://tool.lu/timestamp 验证

  • 安装lxde桌面
apt-get install lxde
  • 安装xrdp
apt-get install tightvncserver xrdp
  • 设置服务器root密码
passwd root
  • 在sesman.ini里设置KillDisconnected=true,每次断开连接时,让linux关闭会话进程
vim /etc/xrdp/sesman.ini

否则进程太多可能导致报错:xrdp session: Login failed for display 0

  • 打开Windows的远程桌面工具,输入IP地址,“允许我保存凭据(R)”不要勾选,点击连接,进入界面后,Session默认用Xorg,用户名处输入root,然后输入密码即可打开桌面

xrdp的默认端口是3389,如果无法链接,查看一下服务器是否放行

为了安全,可更改xrdp默认端口:

vim /etc/xrdp/xrdp.ini

重启xrdp,端口的更改才会生效:

/etc/init.d/xrdp restart

或者

service xrdp restart

有时登录是黑色界面,一般reboot一下可以解决

如果reboot无法解决,尝试重新执行apt-get install lxde

一行代码生成签名文件:

keytool -genkeypair -keystore C:/Users/John/Desktop/yourFileName.keystore -alias yourAliasName -validity 36500 -keyalg RSA -dname "CN=a" -keypass yourPassword -storepass yourPassword

之前有一次,大概是用jdk13生成keystore,给apk签名时一直报错
改成jdk8或者jdk7就没报错过
openjdk8官网下载地址:https://jdk.java.net/java-se-ri/8-MR3

有时购买服务器后,只给了个.key文件让你登录远程linux

Mac先执行以下命令设置文件权限,windows无需此操作

chmod 600 key-file-path.key

然后执行如下命令即可登录

ssh -i 证书路径 用户名@IP地址 -p 端口号

如果端口为22,则-p参数可忽略

有些user可以直接是root,有些不是
如果登录的不是root想切换到root,可以执行

sudo -i

这个方法需要nvue,你可以新建项目时,把默认的index.vue改成index.nvue,然后用下面的代码全部覆盖

<script>
    export default {
        onLoad() {
            const url = 'http://tools.qvdd.cn/request-headers' // 改成你自己的链接
            const uaAppend = 'Your_UA' // 改成你自己的ua
            plus.navigator.setUserAgent(plus.navigator.getUserAgent() + ' ' + uaAppend)
            const sysInfo = uni.getSystemInfoSync()
            const styles = { // html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewStyles
                width: sysInfo.safeArea.width,
                top: sysInfo.statusBarHeight,
                bottom: 0,
                scalable: true, // 默认不能缩放,在访问PC页面时体验不好
                errorPage: '/hybrid/html/error.html' // 网页打不开时打开这个页面
            }
            const wv = plus.webview.open(url, 'id', styles)
            plus.key.addEventListener('backbutton', ()=>{
                wv.canBack((e)=>{
                    if (e.canBack) {
                        wv.back()
                    } else {
                        uni.showModal({
                            title: '是否退出App?',
                            success: (res) => {
                                if (res.confirm) {
                                    plus.runtime.quit()
                                }
                            }
                        })
                    }
                })
            })
        }
    }
</script>

其中的/hybrid/html/error.html可以自己放个漂亮的404模板,我是简单这样写的:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>error</title>
    </head>
    <body>
        <div style="padding: 15px;">
            网页打开失败
        </div>
    </body>
</html>

pages.json里设置"navigationStyle": "custom",隐藏顶部标题栏