HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

directive 不生效 自定义指令不生效

需求

  • 根据权限编码禁用按钮
  • 阻止当前 dom 绑定的点击事件,禁用状态(opacity 半透明?? 或者 display: none?? )

尝试

  • 开发环境用 Chrome 跑,一切正常,构建打包后去真机跑,按钮没控制住
  • (用 HBX -发行-原生应用 app 制作 wgt 包)开发环境: HBX: 3.7.9 系统: MacOS: 13.0.1 (Intel)
  • 通过 directive 绑定一个 v-auth 指令,在标签里 v-auth="’some auth code‘" 或者 v-auth="['code1', 'code2']"
  • directivebindinserted 两个钩子尝试过,最终确定为 el 在真机环境下,与开发环境的el 不是一个玩意

暂用平替方案

  • 全局 mixin 一个方法,判断权限后返回以控制当前 dom 是否可点击

    // path/auth.js  
    function checkAuth(value) {  
        if (  
            value === "" ||  
            (value instanceof Array && value.length === 0) ||  
            !value  
        ) {  
            return true;  
        }  
        const _value = [value].flat(); // 兼容入参为 string 和 array,拍平二维数组  
        const authBtns = uni.getStorageSync("authBtns");  
        if (authBtns === "*") return true;  
        const hasPermission = _value.every((e) => authBtns.includes(e));  
        return hasPermission;  
    }  
    const auth = {  
        install(Vue) {  
            // directive 在 app 下无法正常使用  
            // Vue.directive("auth", {  
            //  bind(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            //  inserted(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            // });  
            // 平替方案  
            Vue.mixin({  
                methods: {  
                    $auth(val) {  
                        if (!checkAuth(val)) {  
                            return [{ opacity: "0.3", pointerEvents: "none" }];  
                        }  
                        return [];  
                    },  
                },  
            });  
        },  
    };  
    
    // path/main.js  
    Vue.use(auth);  
    /*  (他妈的 DCloud 的 md 还不支持写两段代码语法??? 想分开一个 js 语法一个 html 语法的代码块,发现把我 14 的``` 解析成一对语法??23 的```直接忽略??) */  
    // vue文件中  
    <view :style="$auth('AUTH_CODE')">没有权限 AUTH_CODE 别点我</view>  
    <view :style="$auth(['CODE1', 'CODE2'])">没有权限 CODE1&2 别点我</view>

写在最后

官方 uni 文档写着支持 app 用 directive ,可能是我姿势不对,没用对吧。。

继续阅读 »

需求

  • 根据权限编码禁用按钮
  • 阻止当前 dom 绑定的点击事件,禁用状态(opacity 半透明?? 或者 display: none?? )

尝试

  • 开发环境用 Chrome 跑,一切正常,构建打包后去真机跑,按钮没控制住
  • (用 HBX -发行-原生应用 app 制作 wgt 包)开发环境: HBX: 3.7.9 系统: MacOS: 13.0.1 (Intel)
  • 通过 directive 绑定一个 v-auth 指令,在标签里 v-auth="’some auth code‘" 或者 v-auth="['code1', 'code2']"
  • directivebindinserted 两个钩子尝试过,最终确定为 el 在真机环境下,与开发环境的el 不是一个玩意

暂用平替方案

  • 全局 mixin 一个方法,判断权限后返回以控制当前 dom 是否可点击

    // path/auth.js  
    function checkAuth(value) {  
        if (  
            value === "" ||  
            (value instanceof Array && value.length === 0) ||  
            !value  
        ) {  
            return true;  
        }  
        const _value = [value].flat(); // 兼容入参为 string 和 array,拍平二维数组  
        const authBtns = uni.getStorageSync("authBtns");  
        if (authBtns === "*") return true;  
        const hasPermission = _value.every((e) => authBtns.includes(e));  
        return hasPermission;  
    }  
    const auth = {  
        install(Vue) {  
            // directive 在 app 下无法正常使用  
            // Vue.directive("auth", {  
            //  bind(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            //  inserted(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            // });  
            // 平替方案  
            Vue.mixin({  
                methods: {  
                    $auth(val) {  
                        if (!checkAuth(val)) {  
                            return [{ opacity: "0.3", pointerEvents: "none" }];  
                        }  
                        return [];  
                    },  
                },  
            });  
        },  
    };  
    
    // path/main.js  
    Vue.use(auth);  
    /*  (他妈的 DCloud 的 md 还不支持写两段代码语法??? 想分开一个 js 语法一个 html 语法的代码块,发现把我 14 的``` 解析成一对语法??23 的```直接忽略??) */  
    // vue文件中  
    <view :style="$auth('AUTH_CODE')">没有权限 AUTH_CODE 别点我</view>  
    <view :style="$auth(['CODE1', 'CODE2'])">没有权限 CODE1&2 别点我</view>

写在最后

官方 uni 文档写着支持 app 用 directive ,可能是我姿势不对,没用对吧。。

收起阅读 »

vue的动态路由注意事项

Vue

1.点击页面刷新按钮时,动态路由会消失需要重新执行动态添加路由的操作,并且需要执行next({...to}),及重新走刷新前的路由,这些判断一般在beforeEach中执行。

  1. 如何去判断路由是否需要进行重新执行动态路由添加,(1)通过判断vuex中你存的动态路由数组是否存在,一般操作时每次动态路由添加后进行对动态路由数组进行vuex储存.(2) 或者其他可以用于判断是否刷新的变量。
  2. 判断必须严谨,防止出现路由死循环。
继续阅读 »

1.点击页面刷新按钮时,动态路由会消失需要重新执行动态添加路由的操作,并且需要执行next({...to}),及重新走刷新前的路由,这些判断一般在beforeEach中执行。

  1. 如何去判断路由是否需要进行重新执行动态路由添加,(1)通过判断vuex中你存的动态路由数组是否存在,一般操作时每次动态路由添加后进行对动态路由数组进行vuex储存.(2) 或者其他可以用于判断是否刷新的变量。
  2. 判断必须严谨,防止出现路由死循环。
收起阅读 »

uni-app getcurrentpages()的坑

在微信小程序开发的时候用到getCurrentPages(),获取打开页面栈实例,返回的是一个是一个先进后出的栈结构,
let pages = getCurrentPages()
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
wx.navigateBack({delta: count})
}
})

但是在uni-app中在开发APP的时候,getCurrentPages()返回的是一个先进先出的队列结构,
let pages = getCurrentPages().reverse();
为什么要reverse()一下,如果你要用uni.navigateBack({delta: count}),这将会是一个坑count是统计你要返回的页面数量,如果不调用reverse()你会从队列的头开始遍历,但是count要从底部返回累计,所以getCurrentPages().reverse(); 后才能把原先的队列结构反过来,我们在进行遍历才能得到一个正确的顺序
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
uni.navigateBack({delta: count})
}
})

继续阅读 »

在微信小程序开发的时候用到getCurrentPages(),获取打开页面栈实例,返回的是一个是一个先进后出的栈结构,
let pages = getCurrentPages()
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
wx.navigateBack({delta: count})
}
})

但是在uni-app中在开发APP的时候,getCurrentPages()返回的是一个先进先出的队列结构,
let pages = getCurrentPages().reverse();
为什么要reverse()一下,如果你要用uni.navigateBack({delta: count}),这将会是一个坑count是统计你要返回的页面数量,如果不调用reverse()你会从队列的头开始遍历,但是count要从底部返回累计,所以getCurrentPages().reverse(); 后才能把原先的队列结构反过来,我们在进行遍历才能得到一个正确的顺序
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
uni.navigateBack({delta: count})
}
})

收起阅读 »

使用uniapp半年来感受和建议:对我这样小白是好东西,但是出现问题找答案难。建议官方利用chatgpt提升论坛搜索能力。

建议小白们看看bilibili上的“咸虾米”课程,讲得比较清楚,就是得耐心看。

另外,给官方一个建议:

咱们论坛的检索能力的确太弱了,希望能利用chatgpt给好好提升一下。应该能极大改进找bug解决方案。

anyway,我也尽量把自己的排雷教训发在论坛,大家相关学习。

继续阅读 »

建议小白们看看bilibili上的“咸虾米”课程,讲得比较清楚,就是得耐心看。

另外,给官方一个建议:

咱们论坛的检索能力的确太弱了,希望能利用chatgpt给好好提升一下。应该能极大改进找bug解决方案。

anyway,我也尽量把自己的排雷教训发在论坛,大家相关学习。

收起阅读 »

账号密码登录时遇到提示“密码错误”,但是明明密码没有修改。论坛和百度搜了半天,还是老老实实看文档解决了。分享如下:

现象:
账号密码登录时遇到提示“密码错误”,但是明明密码没有修改。

过程:
反思是在上传云函数之后,定位是修改了/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
但改回原来内容,仍存在同样问题。看文档,找到这个地方:
修改passwordSecret 【但是我并没有修改这个地方啊,困惑...后来仔细查看】
原来我当前这个文件中的内容是:
"passwordSecret":“xxxxxxxxxxx” 【具体值是文档中自带的】
和之前上传的文件中的内容不一致:
"passwordSecret": "passwordSecret-demo",

说明:

在config.json内修改passwordSecret会导致历史用户无法通过密码登录。但是某些情况下有些应用有修改passwordSecret的需求,例如刚开始使用uni-id时没有自定义passwordSecret,后续需要修改,此时可以使用uni-id 2.0.1版本新增的修改passwordSecret功能。(注意:2.0.1版本验证码表名调整为了opendb-verify-codes)

如何使用

下面以将passwordSecret从passwordSecret-demo修改为qwertyasdfgh为例介绍如何使用
// 旧config.json
{
"passwordSecret": "passwordSecret-demo"
}

// 新config.json
{
"passwordSecret": [{
"version": 1,
"value": "passwordSecret-demo"
},{
"version": 2,
"value": "qwertyasdfgh"
}]
}

继续阅读 »

现象:
账号密码登录时遇到提示“密码错误”,但是明明密码没有修改。

过程:
反思是在上传云函数之后,定位是修改了/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
但改回原来内容,仍存在同样问题。看文档,找到这个地方:
修改passwordSecret 【但是我并没有修改这个地方啊,困惑...后来仔细查看】
原来我当前这个文件中的内容是:
"passwordSecret":“xxxxxxxxxxx” 【具体值是文档中自带的】
和之前上传的文件中的内容不一致:
"passwordSecret": "passwordSecret-demo",

说明:

在config.json内修改passwordSecret会导致历史用户无法通过密码登录。但是某些情况下有些应用有修改passwordSecret的需求,例如刚开始使用uni-id时没有自定义passwordSecret,后续需要修改,此时可以使用uni-id 2.0.1版本新增的修改passwordSecret功能。(注意:2.0.1版本验证码表名调整为了opendb-verify-codes)

如何使用

下面以将passwordSecret从passwordSecret-demo修改为qwertyasdfgh为例介绍如何使用
// 旧config.json
{
"passwordSecret": "passwordSecret-demo"
}

// 新config.json
{
"passwordSecret": [{
"version": 1,
"value": "passwordSecret-demo"
},{
"version": 2,
"value": "qwertyasdfgh"
}]
}

收起阅读 »

4月26日,每日互动(个推)与您相约第六届数字中国建设峰会

4月26日-30日,第六届数字中国建设峰会及成果展览会将在福州隆重举行。本届峰会以“加快数字中国建设,推进中国式现代化”为主题,由国家网信办、国家发改委、科技部、工信部、国务院国资委、福建省人民政府共同主办,福州市人民政府等有关单位承办。

每日互动(个推)深耕数据智能赛道十余年,一直积极投身于数字中国和数字经济建设。今年每日互动也将携公司在垂直领域的最新探索和实践成果,再次亮相数字中国成果展览会(展位号:10号馆 10B11)。

数据智能服务商每日互动(股票代码:300766)成立于2011年,经过十多年的快速发展,公司沉淀了海量的数据资源,积累了深厚的数据治理、算法建模等技术实力。每日互动充分发挥数据和技术能力优势,面向用户增长、品牌营销、城市治理、公共管理等领域提供专业的数据智能服务和解决方案,助力行业客户及政府相关单位实现数字化转型升级。

本次数字中国建设峰会,每日互动将携数智化运营、数智营销、智慧交通等领域的创新实践成果亮相,期待与大家相聚福州,共话数据智能应用趋势,共探数字中国建设路径!

4月26日—30日
第六届数字中国建设峰会
每日互动展位号:10号馆 10B11
欢迎大家来现场参观和交流!

继续阅读 »

4月26日-30日,第六届数字中国建设峰会及成果展览会将在福州隆重举行。本届峰会以“加快数字中国建设,推进中国式现代化”为主题,由国家网信办、国家发改委、科技部、工信部、国务院国资委、福建省人民政府共同主办,福州市人民政府等有关单位承办。

每日互动(个推)深耕数据智能赛道十余年,一直积极投身于数字中国和数字经济建设。今年每日互动也将携公司在垂直领域的最新探索和实践成果,再次亮相数字中国成果展览会(展位号:10号馆 10B11)。

数据智能服务商每日互动(股票代码:300766)成立于2011年,经过十多年的快速发展,公司沉淀了海量的数据资源,积累了深厚的数据治理、算法建模等技术实力。每日互动充分发挥数据和技术能力优势,面向用户增长、品牌营销、城市治理、公共管理等领域提供专业的数据智能服务和解决方案,助力行业客户及政府相关单位实现数字化转型升级。

本次数字中国建设峰会,每日互动将携数智化运营、数智营销、智慧交通等领域的创新实践成果亮相,期待与大家相聚福州,共话数据智能应用趋势,共探数字中国建设路径!

4月26日—30日
第六届数字中国建设峰会
每日互动展位号:10号馆 10B11
欢迎大家来现场参观和交流!

收起阅读 »

个推打造消息推送专项运营提升方案,数据驱动APP触达效果升级

消息推送


“数智化运营”能力已成为企业的核心竞争力之一。借助数据和算法,构建完善的数智化运营体系,企业可增强用户洞察和科学决策能力,提高日常运营效率和投入产出比。近半年,个推精准把握行业客户的切实需求,将“数智化运营”思维和能力在消息推送场景率先落地。聚焦消息“到达”“点击”等关键运营指标,个推最新推出了专项运营提升方案,提供更全面的分析以及更准确的归因,帮助APP强化与用户的连接,使消息推送更出成效。

01打通数据流,实现推送场景降本增效
个推一直倡导“在合适的时间、合适的地点、合适的场景,把合适的内容推送给合适的人群”。在本次专项运营提升方案中,个推打通了整个推送链路上的数据流,支持APP便捷地分析各维度、各环节的数据,并从中挖掘合适的消息下发时机、场景、内容及人群。

比如APP运营人员可以对用户属性、设备状态、设备使用场景等维度综合分析,预测出最佳的用户触达时机,实现“亮屏推送”,在“合适的时间”“合适的场景”下完成消息下发,提升消息到达率和点击率;运营人员也可以结合用户的行为特征,实现“智能配额”,在保障消息到达的同时节约厂商额度,实现在用户触达场景中的“降本增效”。

02标签+模型圈人,提升推送点击率
数智化运营的本质在于以用户为中心,通过数据驱动运营增长。个推也强调APP做消息推送要从用户的内在需求出发,给“合适的人群”推送“合适的内容”。个推借助数智化技术帮助APP实现人群和内容的精准匹配,从而提升推送点击率。
具体实现方式有两种,一是“根据人群创作内容”,二是“根据内容匹配人群”。

  • 根据人群创作内容
    不同的细分人群其兴趣偏好也呈现差异化的特征。个推提供用户画像洞察的能力,帮助APP深入、细致、全面地了解目标用户群的线上线下偏好特征,针对性地撰写更能激发他们兴趣和好奇心的推送文案,提升消息推送的点击率。此外,APP也可以结合自身业务数据和个推数据能力,自定义标签规则,对用户进行分层,针对不同的特征人群推送相应的内容,实现更加高效率、精细化的用户沟通。

  • 根据内容匹配人群
    个推还使用AI技术,打造“智选人群”功能,帮助APP基于活动文案找到对应的目标用户群。借助AI对文本语义的学习和理解,个推帮助APP提取出推送文案的内容特征,并结合算法模型,预测出对文案有高点击偏好的用户群体,进行定向触达,提升推送点击率。

作为个推本次专项运营提升方案中的一大亮点,个推智选人群功能一经推出就得到了众多客户的关注。知名游戏社交APP和个推合作,使用“智选人群”功能优化推送策略,通过AI模型预测出高点击人群,使推送点击率提升了119.93%。

03后效数据回流,持续优化运营策略
数智化运营是一项长期工程,个推专项运营提升方案帮助APP将宝贵的数据资产、推送策略及运营经验沉淀下来,构建可以持续进化、迭代的数智化运营体系。

比如,个推提供完善的推送数据报表。借助快速回流的后效数据,APP一方面可以结合A/B test分组推送等功能,对不同的人群、推送文案、推送时机进行测试对比,帮助优化推送策略;另一方面APP也可以将后效数据“喂”给AI模型继续学习,不断提升模型的预测能力。而在每一次推送和运营活动中表现出高点击、高转化的优质人群和优质文案,APP也可以将其沉淀下来,形成模板,用于下一次的推送或广告投放。

综上,个推专项运营提升方案围绕用户触达这一环节,将消息推送、数据分析、算法模型等能力以及自身积累的丰富运营经验整合,为APP开展数智化运营提供切实可行的场景入口。以推送场景应用为起点,个推将持续打磨数智化运营解决方案,进一步为APP运营全链条增能提效,助力APP业务增长。

新用户限时福利
@各位APP开发运营人员看过来:
即日起至4月30日,在个推官网开发者中心完成注册的APP(含企业用户与个人用户),可享个推消息推送VIP功能免费用30天。完成注册者可扫描下方二维码,添加@个推服务运营领取权益。

扫码添加个推服务运营↑

继续阅读 »


“数智化运营”能力已成为企业的核心竞争力之一。借助数据和算法,构建完善的数智化运营体系,企业可增强用户洞察和科学决策能力,提高日常运营效率和投入产出比。近半年,个推精准把握行业客户的切实需求,将“数智化运营”思维和能力在消息推送场景率先落地。聚焦消息“到达”“点击”等关键运营指标,个推最新推出了专项运营提升方案,提供更全面的分析以及更准确的归因,帮助APP强化与用户的连接,使消息推送更出成效。

01打通数据流,实现推送场景降本增效
个推一直倡导“在合适的时间、合适的地点、合适的场景,把合适的内容推送给合适的人群”。在本次专项运营提升方案中,个推打通了整个推送链路上的数据流,支持APP便捷地分析各维度、各环节的数据,并从中挖掘合适的消息下发时机、场景、内容及人群。

比如APP运营人员可以对用户属性、设备状态、设备使用场景等维度综合分析,预测出最佳的用户触达时机,实现“亮屏推送”,在“合适的时间”“合适的场景”下完成消息下发,提升消息到达率和点击率;运营人员也可以结合用户的行为特征,实现“智能配额”,在保障消息到达的同时节约厂商额度,实现在用户触达场景中的“降本增效”。

02标签+模型圈人,提升推送点击率
数智化运营的本质在于以用户为中心,通过数据驱动运营增长。个推也强调APP做消息推送要从用户的内在需求出发,给“合适的人群”推送“合适的内容”。个推借助数智化技术帮助APP实现人群和内容的精准匹配,从而提升推送点击率。
具体实现方式有两种,一是“根据人群创作内容”,二是“根据内容匹配人群”。

  • 根据人群创作内容
    不同的细分人群其兴趣偏好也呈现差异化的特征。个推提供用户画像洞察的能力,帮助APP深入、细致、全面地了解目标用户群的线上线下偏好特征,针对性地撰写更能激发他们兴趣和好奇心的推送文案,提升消息推送的点击率。此外,APP也可以结合自身业务数据和个推数据能力,自定义标签规则,对用户进行分层,针对不同的特征人群推送相应的内容,实现更加高效率、精细化的用户沟通。

  • 根据内容匹配人群
    个推还使用AI技术,打造“智选人群”功能,帮助APP基于活动文案找到对应的目标用户群。借助AI对文本语义的学习和理解,个推帮助APP提取出推送文案的内容特征,并结合算法模型,预测出对文案有高点击偏好的用户群体,进行定向触达,提升推送点击率。

作为个推本次专项运营提升方案中的一大亮点,个推智选人群功能一经推出就得到了众多客户的关注。知名游戏社交APP和个推合作,使用“智选人群”功能优化推送策略,通过AI模型预测出高点击人群,使推送点击率提升了119.93%。

03后效数据回流,持续优化运营策略
数智化运营是一项长期工程,个推专项运营提升方案帮助APP将宝贵的数据资产、推送策略及运营经验沉淀下来,构建可以持续进化、迭代的数智化运营体系。

比如,个推提供完善的推送数据报表。借助快速回流的后效数据,APP一方面可以结合A/B test分组推送等功能,对不同的人群、推送文案、推送时机进行测试对比,帮助优化推送策略;另一方面APP也可以将后效数据“喂”给AI模型继续学习,不断提升模型的预测能力。而在每一次推送和运营活动中表现出高点击、高转化的优质人群和优质文案,APP也可以将其沉淀下来,形成模板,用于下一次的推送或广告投放。

综上,个推专项运营提升方案围绕用户触达这一环节,将消息推送、数据分析、算法模型等能力以及自身积累的丰富运营经验整合,为APP开展数智化运营提供切实可行的场景入口。以推送场景应用为起点,个推将持续打磨数智化运营解决方案,进一步为APP运营全链条增能提效,助力APP业务增长。

新用户限时福利
@各位APP开发运营人员看过来:
即日起至4月30日,在个推官网开发者中心完成注册的APP(含企业用户与个人用户),可享个推消息推送VIP功能免费用30天。完成注册者可扫描下方二维码,添加@个推服务运营领取权益。

扫码添加个推服务运营↑

收起阅读 »

出售uniapp原生插件,IOS和安卓获取真唯一标识(不会改变),能过苹果商店审核

出售uniapp原生插件,IOS和安卓获取真唯一标识(不会因为卸载以后重新安装就回改变)能过苹果商店审核,价格便宜,有意者+V:ww18011524682

出售uniapp原生插件,IOS和安卓获取真唯一标识(不会因为卸载以后重新安装就回改变)能过苹果商店审核,价格便宜,有意者+V:ww18011524682

关于后端链接有;JSESSIONID=xxx导致页面404的问题

java Vue

1.后端Java时,重定向时出现链接有;JSESSIONID=xxx的问题

  1. 是由后端的框架引起的问题,有后端解决,前端解决不了的

如果客户端禁用了cookie的话,就要重写url了,显式的将jsessionid重写到Url中,方便服务器来通过这个找到session的id。

继续阅读 »

1.后端Java时,重定向时出现链接有;JSESSIONID=xxx的问题

  1. 是由后端的框架引起的问题,有后端解决,前端解决不了的

如果客户端禁用了cookie的话,就要重写url了,显式的将jsessionid重写到Url中,方便服务器来通过这个找到session的id。

收起阅读 »

npm下载的uni-ui使用uni-calendar插件月份切换 有bug

DCloud uni_ui uni_app项目

<uni-calendar class="uni-calendar--hook" :selected="info.selected" :showMonth="false"/>

月份切换有bug,配置文件下载的uni-ui版本是 "@dcloudio/uni-ui": "^1.4.26",

继续阅读 »

<uni-calendar class="uni-calendar--hook" :selected="info.selected" :showMonth="false"/>

月份切换有bug,配置文件下载的uni-ui版本是 "@dcloudio/uni-ui": "^1.4.26",

收起阅读 »

通过命令 使用Vue3/Vite版 和vue-property-decorator 一些问题及解决方法

uniapp模板

首页说明一下本人个人喜好vue-property-decorator 语法糖的开发方式,对于vue3.0新的语法不做评价****
项目搭建:
1.npx degit dcloudio/uni-preset-vue#vite-ts 创建项目

  1. vue-property-decorator语法糖
    出现问题:
    1.如何将uniapp中的小程序生命周期和 vue-property-decorator语法糖进行合并处理达到完美结合
  2. 页面中具体如何实现
  3. 可不可以参考vue2.0的开发方式进行处理
    4.vue3.0的语法怎么处理
    达成效果
    
    <script lang="ts">  
    import { Vue } from 'vue-property-decorator';  

@Options({
name: 'home'
})
export default class Home extends Vue {
vtype: string = '';
get option() {
return {
column: 3,
className: 'margin-left-right-22',
items: [
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
}
]
};
}
async onTapChange() {
// const res = await getUserInfo()
}

async onShow() {
const res = uni.getLaunchOptionsSync();
console.log(res);
// this.vtype = await getview();
}
}
</script>

处理结果  
经过本人测试以上问题完全可以解决,并且也可以参考vue2.0的版本

import { Vue } from 'vue-property-decorator';
import { LoginJson, WeixinJson, LoginWeixin } from '@/pages/scripts/login';
@Options({
name: 'login',
onShow() {
console.log('App 9999999999');
// routerTo();
}
})
export default class Login extends Vue {
get loginjson() {
return LoginJson;
}
get weixinJson() {
return WeixinJson;
}

onTapSubmit(data: any) {
LoginWeixin(data);
}
onGetPhoneNumber(data: any) {
console.log(data, 11);
}
}
</script>

继续阅读 »

首页说明一下本人个人喜好vue-property-decorator 语法糖的开发方式,对于vue3.0新的语法不做评价****
项目搭建:
1.npx degit dcloudio/uni-preset-vue#vite-ts 创建项目

  1. vue-property-decorator语法糖
    出现问题:
    1.如何将uniapp中的小程序生命周期和 vue-property-decorator语法糖进行合并处理达到完美结合
  2. 页面中具体如何实现
  3. 可不可以参考vue2.0的开发方式进行处理
    4.vue3.0的语法怎么处理
    达成效果
    
    <script lang="ts">  
    import { Vue } from 'vue-property-decorator';  

@Options({
name: 'home'
})
export default class Home extends Vue {
vtype: string = '';
get option() {
return {
column: 3,
className: 'margin-left-right-22',
items: [
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
},
{
visible: true,
icon: 'icon-pen3 font-40',
label: '添加'
}
]
};
}
async onTapChange() {
// const res = await getUserInfo()
}

async onShow() {
const res = uni.getLaunchOptionsSync();
console.log(res);
// this.vtype = await getview();
}
}
</script>

处理结果  
经过本人测试以上问题完全可以解决,并且也可以参考vue2.0的版本

import { Vue } from 'vue-property-decorator';
import { LoginJson, WeixinJson, LoginWeixin } from '@/pages/scripts/login';
@Options({
name: 'login',
onShow() {
console.log('App 9999999999');
// routerTo();
}
})
export default class Login extends Vue {
get loginjson() {
return LoginJson;
}
get weixinJson() {
return WeixinJson;
}

onTapSubmit(data: any) {
LoginWeixin(data);
}
onGetPhoneNumber(data: any) {
console.log(data, 11);
}
}
</script>

收起阅读 »

uniapp开发

uniapp

求一名平时有时间接私活懂uin-app开发的技术人员,要求:
1、你的工作城市在杭州,这样便于见面沟通;
2、懂串口232通信。
非诚勿扰,vx:hailangzc

求一名平时有时间接私活懂uin-app开发的技术人员,要求:
1、你的工作城市在杭州,这样便于见面沟通;
2、懂串口232通信。
非诚勿扰,vx:hailangzc