Skip to content

uni-app 代码片段

vue2-uniapp-template

{
	"vue2-uniapp-template": {
		"prefix": "vue",
		"body": [
			"<template>",
			"<view class=\"main\">",
			"$1",
			"</view>",
			"</template>",
			"",
			"<script>",
			"import { imgPath } from '@/config/index.js'",
			"export default {",
			"data() {",
			"return {",
			"imgPath: imgPath,",
			"}",
			"},",
			"computed: {},",
			"watch: {},",
			"methods: {},",
			"onLoad(option) {",
			"},",
			"onShow() {},",
			"onReady() {},",
			"created() {},",
			"mounted() {}",
			"}",
			"</script>",
			"",
			"<style lang=\"less\" scoped>",
			".main {}",
			"</style>"
		],
		"triggerAssist": true,
		"description": "Vue2 uniapp模板"
	}
}

console.log

{
    "console.log": {
        "prefix": "log",
        "body": [
            "console.log($1)"
        ],
        "triggerAssist": true,
        "description": "Log output to console twice"
    }
}

onLaunch 和 onLoad 异步问题的三种解决办法

  1. 搜索引擎(uni-app onLaunchonLoad异步的问题);
  2. 调接口的时候添加延时判断是否有token,没有的话继续延时,直到有了token再进行接口请求,记得添加超时;
  3. 过渡页面,打开 app 先进入一个过渡的静态加载页面,加载出token后再跳转到首页。

通过 wifi 调试 app 无线调试

  1. 找到adb的路径HBuilderX\plugins\launcher\tools\adbs
  2. 在终端中打开adbs文件夹(可以通过资源管理器打开此目录,按住shift右击 在此处打开命令窗口)
  3. 手机使用数据线连接电脑(需打开 USB 调试),并在同一 wifi 下
  4. 输入adb devices查看手机是否成功连接上电脑
  5. 设置手机监听端口 5555,并通过TCP / IP连接 .\adb tcpip 5555
  6. 通过手机 ip 连接电脑 手机 IP 一般在手机的状态信息中获取 .\adb connect 192.168.0.104
  7. connected to 192.168.0.104:5555表示连接成功,这时拔掉数据线一样也可以调试代码了
  8. 出现unable to connect to 192.168.0.106:5555由于目标计算机积极拒绝,无法连接 错误,可以先关闭 adb 命令为.\adb kill server,然后重试以上流程

微信小程序订阅消息

<script>
    export default {
        methods: {
            getDingYue() { // 订阅消息
                let tmplIds = '********************' //模板消息id:服务处理进度通知
                wx.getSetting({
                    withSubscriptions: true, //  这里设置为true,下面才会返回mainSwitch
                    success: function(res) {
                        // 调起授权界面弹窗
                        if (res.subscriptionsSetting.mainSwitch) { // 用户打开了订阅消息总开关
                            if (res.subscriptionsSetting.itemSettings !=
                                null) { // 用户同意总是保持是否推送消息的选择, 这里表示以后不会再拉起推送消息的授权
                                let moIdState = res.subscriptionsSetting.itemSettings[tmplIds]; // 用户同意的消息模板id
                                if (moIdState === 'accept') {
                                    console.log('接受了消息推送');
                                } else if (moIdState === 'reject') {
                                    console.log("拒绝消息推送");
                                } else if (moIdState === 'ban') {
                                    console.log("已被后台封禁");
                                }
                            } else {
                                // 当用户没有点击 ’总是保持以上选择,不再询问‘  按钮。那每次执到这都会拉起授权弹窗
                                wx.showModal({
                                    title: '提示',
                                    content: '请授权开通服务通知',
                                    showCancel: true,
                                    success: function(ress) {
                                        if (ress.confirm) {
                                            wx.requestSubscribeMessage({ // 调起消息订阅界面
                                                tmplIds: [tmplIds],
                                                success(res) {
                                                    console.log('订阅消息 成功 ');
                                                    console.log(res);
                                                },
                                                fail(er) {
                                                    console.log("订阅消息 失败 ");
                                                    console.log(er);
                                                },
                                                complete: () => {
                                                    // 执行完成的回调函数
                                                }
                                            })
                                        }
                                    }
                                })
                            }
                        } else {
                            console.log('订阅消息未开启')
                        }
                    },
                    fail: function(error) {
                        console.log(error);
                    },
                })
            },
        },
    }
</script>