HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

wordpress项目找个人开发合作

外包 WordPress

wordpress项目,有专用模版,可基本套用。要求熟悉wordpress搭建的个人,费用看项目具体聊。wx:jonathanfu

wordpress项目,有专用模版,可基本套用。要求熟悉wordpress搭建的个人,费用看项目具体聊。wx:jonathanfu

分享一枚 HBuilderX 的图标,适配 BigSur 及 Ventura

HBuilderX 图标

高清版本,适配最新系统的圆角矩形图标。
HBuilderX图标参考

高清版本,适配最新系统的圆角矩形图标。
HBuilderX图标参考

大家有没发现,某次更新之后HbuilderX就变得怪怪的

代码提示

应该是代码提示重构的那次更新,
代码提示很别扭,甚至代码跳转也会失效。。。

应该是代码提示重构的那次更新,
代码提示很别扭,甚至代码跳转也会失效。。。

uniCloud实战项目-数购优惠券项目

自己摸索,不如直接通过视频学习,数购优惠券项目为你提供了快捷学习uniCloud方法,帮大家踩过不少坑。该项目可以直接运营。

该课程通过项目实战,能完全掌握unicloud项目开发到部署,使用该课程的思路能一个人快速完成项目,相似项目快至3-7天,慢至15天。课程里讲解云函数设计多种方法,包括自动生成代码,自己封装unicloud客户端api.还详细讲解了vkcloud的使用方法。还讲解前端使用uni-starter模板开发,并讲解各种官方常用组件与第三方组件的使用并修改。后台管理系统介绍了vkcloudadmin框架的一些高级技巧。同时课程中讲解了开发中遇到的各种bug该怎么解决

课程学习地址:
https://study.163.com/course/courseMain.htm?courseId=1213169818&share=2&shareId=480000002289465

继续阅读 »

自己摸索,不如直接通过视频学习,数购优惠券项目为你提供了快捷学习uniCloud方法,帮大家踩过不少坑。该项目可以直接运营。

该课程通过项目实战,能完全掌握unicloud项目开发到部署,使用该课程的思路能一个人快速完成项目,相似项目快至3-7天,慢至15天。课程里讲解云函数设计多种方法,包括自动生成代码,自己封装unicloud客户端api.还详细讲解了vkcloud的使用方法。还讲解前端使用uni-starter模板开发,并讲解各种官方常用组件与第三方组件的使用并修改。后台管理系统介绍了vkcloudadmin框架的一些高级技巧。同时课程中讲解了开发中遇到的各种bug该怎么解决

课程学习地址:
https://study.163.com/course/courseMain.htm?courseId=1213169818&share=2&shareId=480000002289465

收起阅读 »

看图猜成语-uniCloud - 素材和数据包下载

看图猜成语-uniCloud应用是基于 uniCloud 的 云端一体化看图猜成语游戏。该游戏是一款益智小游戏,是用一幅画或几个字的组合来猜一个成语。该游戏巧妙地使用图与字的结合,能够让玩家在休闲娱乐的同时能够了解到成语的趣味。

插件地址:https://ext.dcloud.net.cn/plugin?id=5045

素材和数据包请下载附件zip压缩文件

文档附件

继续阅读 »

看图猜成语-uniCloud应用是基于 uniCloud 的 云端一体化看图猜成语游戏。该游戏是一款益智小游戏,是用一幅画或几个字的组合来猜一个成语。该游戏巧妙地使用图与字的结合,能够让玩家在休闲娱乐的同时能够了解到成语的趣味。

插件地址:https://ext.dcloud.net.cn/plugin?id=5045

素材和数据包请下载附件zip压缩文件

文档附件

收起阅读 »

关于Android 部分手机NotificationManagerCompat.from 返回null 解决办法

NJS

在做一个检查应用是否拥有通知权限功能的时候发现部分手机(Redmi Note 5A 【Android 7.1.2】)调用NotificationManagerCompat.from(context) 会返回null
查阅了Android Dev 文档,官方描述NotificationManagerCompat.from 的返回值是 NonNull的 理应不会返回null

尝试修复方式如下,我自己去看了NotificationManagerCompat.from + NotificationManagerCompat.areNotificationsEnabled源代码手撸的;
相当于给NotificationManagerCompat.from 添加了个Polyfill;

const activity = plus.android.runtimeMainActivity();  
const NotificationManagerCompat = plus.android.importClass('androidx.core.app.NotificationManagerCompat');  
const manager = NotificationManagerCompat.from(activity) || {  
    /** 手动实现 NotificationManagerCompat,因为部分手机NotificationManagerCompat.from会返回null */  
    areNotificationsEnabled() {  
        const Build = plus.android.importClass('android.os.Build');  

        if (Build.VERSION.SDK_INT >= 24) {  
            plus.android.importClass('android.app.NotificationManager');  
            const notificationManager = activity.getSystemService(activity.NOTIFICATION_SERVICE);  
            const areNotificationsEnabled = notificationManager.areNotificationsEnabled();  

            plus.android.autoCollection(notificationManager);  

            return areNotificationsEnabled;  
        } else if (Build.VERSION.SDK_INT >= 19) {  
            const AppOpsManager = plus.android.importClass('android.app.AppOpsManager');  
            const ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');  

            const appOps = activity.getSystemService(activity.APP_OPS_SERVICE);  
            const appInfo = activity.getApplicationInfo();  

            try {  
                const isEnabled = appOps.checkOpNoThrow(  
                    AppOpsManager.OP_POST_NOTIFICATION,  
                    plus.android.getAttribute(appInfo, 'uid'), //直接appInfo.uid 返回的是undefined  
                    activity.getApplicationContext().getPackageName()  
                ) === AppOpsManager.MODE_ALLOWED;  

                plus.android.autoCollection(appOps);  
                plus.android.autoCollection(appInfo);  
                return isEnabled;  
            } catch (e) {  
                return true;  
            }  
        }  

        return true;  
    }  
};  

console.log(manager.areNotificationsEnabled())
继续阅读 »

在做一个检查应用是否拥有通知权限功能的时候发现部分手机(Redmi Note 5A 【Android 7.1.2】)调用NotificationManagerCompat.from(context) 会返回null
查阅了Android Dev 文档,官方描述NotificationManagerCompat.from 的返回值是 NonNull的 理应不会返回null

尝试修复方式如下,我自己去看了NotificationManagerCompat.from + NotificationManagerCompat.areNotificationsEnabled源代码手撸的;
相当于给NotificationManagerCompat.from 添加了个Polyfill;

const activity = plus.android.runtimeMainActivity();  
const NotificationManagerCompat = plus.android.importClass('androidx.core.app.NotificationManagerCompat');  
const manager = NotificationManagerCompat.from(activity) || {  
    /** 手动实现 NotificationManagerCompat,因为部分手机NotificationManagerCompat.from会返回null */  
    areNotificationsEnabled() {  
        const Build = plus.android.importClass('android.os.Build');  

        if (Build.VERSION.SDK_INT >= 24) {  
            plus.android.importClass('android.app.NotificationManager');  
            const notificationManager = activity.getSystemService(activity.NOTIFICATION_SERVICE);  
            const areNotificationsEnabled = notificationManager.areNotificationsEnabled();  

            plus.android.autoCollection(notificationManager);  

            return areNotificationsEnabled;  
        } else if (Build.VERSION.SDK_INT >= 19) {  
            const AppOpsManager = plus.android.importClass('android.app.AppOpsManager');  
            const ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');  

            const appOps = activity.getSystemService(activity.APP_OPS_SERVICE);  
            const appInfo = activity.getApplicationInfo();  

            try {  
                const isEnabled = appOps.checkOpNoThrow(  
                    AppOpsManager.OP_POST_NOTIFICATION,  
                    plus.android.getAttribute(appInfo, 'uid'), //直接appInfo.uid 返回的是undefined  
                    activity.getApplicationContext().getPackageName()  
                ) === AppOpsManager.MODE_ALLOWED;  

                plus.android.autoCollection(appOps);  
                plus.android.autoCollection(appInfo);  
                return isEnabled;  
            } catch (e) {  
                return true;  
            }  
        }  

        return true;  
    }  
};  

console.log(manager.areNotificationsEnabled())
收起阅读 »

HBuilderX

IDE

动不动就闪退,史上最垃圾ide

动不动就闪退,史上最垃圾ide

uniapp编译小程序typeof不支持的问题

uniapp

使用uniapp框架,编译后发现出现如下报错。

对 wxml 文档进行格式化,使用删代码调试的方法最终定位到了报错的内容为以下代码引起

<block wx:if="{{typeof 'a'==='string'&&item.m1==='object'}}">

再进一步排查,发现是对行内判断 typeof 不支持微信小程序造成的。

在 JavaScript 中,typeof 是一个运算符,用于返回一个表示操作数的类型的字符串。它可以用于检查一个值的数据类型,例如:

typeof 5 // 返回 "number" typeof "hello" // 返回 "string"
typeof 运算符可以用于检查任何数据类型,包括原始类型(如数字、字符串、布尔值等)和复杂类型(如对象、数组、函数等)。

然而,由于各个平台对 JavaScript 的支持情况不同,因此 UniApp 中的 JavaScript 代码并不能在所有平台上运行。例如,在微信小程序中,您可能无法使用某些 JavaScript 特性,包括行内 typeof 运算符。

最终解决办法为定义一个方法,在行内调用方法而避免直接调用 typeof。如下所示

<block wx:if="{{getType('a')==='string'&&item.m1==='object'}}">

在页面中定义函数

export default{  
  // ...  
  methods: {  
    getType(v){  
      return typeof v;  
    }  
  }  
  // ...  
}
继续阅读 »

使用uniapp框架,编译后发现出现如下报错。

对 wxml 文档进行格式化,使用删代码调试的方法最终定位到了报错的内容为以下代码引起

<block wx:if="{{typeof 'a'==='string'&&item.m1==='object'}}">

再进一步排查,发现是对行内判断 typeof 不支持微信小程序造成的。

在 JavaScript 中,typeof 是一个运算符,用于返回一个表示操作数的类型的字符串。它可以用于检查一个值的数据类型,例如:

typeof 5 // 返回 "number" typeof "hello" // 返回 "string"
typeof 运算符可以用于检查任何数据类型,包括原始类型(如数字、字符串、布尔值等)和复杂类型(如对象、数组、函数等)。

然而,由于各个平台对 JavaScript 的支持情况不同,因此 UniApp 中的 JavaScript 代码并不能在所有平台上运行。例如,在微信小程序中,您可能无法使用某些 JavaScript 特性,包括行内 typeof 运算符。

最终解决办法为定义一个方法,在行内调用方法而避免直接调用 typeof。如下所示

<block wx:if="{{getType('a')==='string'&&item.m1==='object'}}">

在页面中定义函数

export default{  
  // ...  
  methods: {  
    getType(v){  
      return typeof v;  
    }  
  }  
  // ...  
}
收起阅读 »

实现在windows、linux下上传ios app到App Store

iOS打包

实现在windows、linux下上传ios app到App Store​
我们知道发布一个app,一般是用到苹果的application loader助手上传应用,用过的都知道使用起来很繁琐,经常出错。而且只能运行在mac系统上,需要一定的硬件条件。​

前段时间发现了一个上架的辅助工具Appuploader,可以实现在windows,linux或mac上,不需要应用程序加载器和mac计算机,就可以发布app到app store,试用了下,感觉不错,分享给各位开发者,方便大家。​

Appuploader算是一个专门为IOS app上架的开发助手,可以快速,轻松地生成ios开发证书,不需要钥匙串助手; appuploader还可以批量上传屏幕截图并将ipa文件上传到Apple商店。很方便的生成证书和配置文件的,快速的上架app,提升效率的辅助工具,现在可以免费使用,分享给大家。​

继续阅读 »

实现在windows、linux下上传ios app到App Store​
我们知道发布一个app,一般是用到苹果的application loader助手上传应用,用过的都知道使用起来很繁琐,经常出错。而且只能运行在mac系统上,需要一定的硬件条件。​

前段时间发现了一个上架的辅助工具Appuploader,可以实现在windows,linux或mac上,不需要应用程序加载器和mac计算机,就可以发布app到app store,试用了下,感觉不错,分享给各位开发者,方便大家。​

Appuploader算是一个专门为IOS app上架的开发助手,可以快速,轻松地生成ios开发证书,不需要钥匙串助手; appuploader还可以批量上传屏幕截图并将ipa文件上传到Apple商店。很方便的生成证书和配置文件的,快速的上架app,提升效率的辅助工具,现在可以免费使用,分享给大家。​

收起阅读 »

hbuilder 的bug真多

HBuilderX

明明选中着项目,运行时候说没有选中,非得再点一下,点的时候又把项目折叠,还得点开,麻烦死了。

明明选中着项目,运行时候说没有选中,非得再点一下,点的时候又把项目折叠,还得点开,麻烦死了。