HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

hbuilderx开发的app获取公钥和MD5的方法

app备案

阿里云提示需要安装jadx-gui和使用mac来获取app的公钥和MD5这些信息。

这样就比较麻烦了,使用uniapp开发就是为了跨系统开发,假如还需要mac或jadx-gui,就不灵活了。

所以这里建议使用下面方式来获取公钥和md5值

ios查询方法:

https://www.yunedit.com/iosmd5

android查询方法:

https://www.yunedit.com/androidmd5​​​​​​

继续阅读 »

阿里云提示需要安装jadx-gui和使用mac来获取app的公钥和MD5这些信息。

这样就比较麻烦了,使用uniapp开发就是为了跨系统开发,假如还需要mac或jadx-gui,就不灵活了。

所以这里建议使用下面方式来获取公钥和md5值

ios查询方法:

https://www.yunedit.com/iosmd5

android查询方法:

https://www.yunedit.com/androidmd5​​​​​​

收起阅读 »

在global.scss文件中使用scss变量无效??

scss

在scss文件中使用scss变量无效??
经测试,在App端无效果,但是在Web中可以生效

但是在app.vue文件中使用可以生效

在uni.scss文件导入variables.scss和通过脚手架配置都不生效

继续阅读 »

在scss文件中使用scss变量无效??
经测试,在App端无效果,但是在Web中可以生效

但是在app.vue文件中使用可以生效

在uni.scss文件导入variables.scss和通过脚手架配置都不生效

收起阅读 »

关于map组件绘制markers,polyline可能会出现重绘的问题

地图 map

当前遇到在绘制markers,polyline之后,地图会闪动并且只显示设置的经纬度点,这个有可能是某些代码逻辑涉及到了地图绘制,导致地图多次重绘.所以需要检查这部分的代码,保证地图只需要重绘一次即可.

当前遇到在绘制markers,polyline之后,地图会闪动并且只显示设置的经纬度点,这个有可能是某些代码逻辑涉及到了地图绘制,导致地图多次重绘.所以需要检查这部分的代码,保证地图只需要重绘一次即可.

【已解决】调试链接已关闭。原因websocket已断开 项目真机调试,打开webview调试,显示调试连接已关闭是什么回事?

WebView调试模式常见问题 WebView调试

【已经解决】如果你正在开发app应用,打开webview的时候提示websocket
我本地的是两个wifi,分别的是A和A_5G A_5G工作时候使用,A是2.4H的,给家用电器使用,有一次电脑抓包,不知道为啥,电脑和手机都切换成了A才能成功,出去回来后,手机自动连接的A_5G,电脑自动连接的A,导致不在一个wifi下面,所以不成功,把电脑的wifi设置成A_5G后问题迎刃而解
所以前面几天手机投屏不到电视,也是这个原因,有问题的就试试吧

继续阅读 »

【已经解决】如果你正在开发app应用,打开webview的时候提示websocket
我本地的是两个wifi,分别的是A和A_5G A_5G工作时候使用,A是2.4H的,给家用电器使用,有一次电脑抓包,不知道为啥,电脑和手机都切换成了A才能成功,出去回来后,手机自动连接的A_5G,电脑自动连接的A,导致不在一个wifi下面,所以不成功,把电脑的wifi设置成A_5G后问题迎刃而解
所以前面几天手机投屏不到电视,也是这个原因,有问题的就试试吧

收起阅读 »

打包ios,传ipa文件到app store最简教程

应用上架

ios的证书创建、安装或上架,并没有安卓这么简单直接。它的打包需要通过苹果开发者中心生成证书,安装的话,也是根据证书的类型决定,假如是普通的证书或普通company证书只能上架才能安装(测试的话有其他安装方法,那是另外的话题),假如是企业类型的in house证书,则可以通过在线安装的方式,比如通过上传到一些分发平台,比如香蕉云编或蒲公英生成安装码扫码安装。

因为生成证书需要苹果开发者账号,开发者根据是否需要上架选择不同的类型注册。

下面是申请公司或企业类型的苹果开发者账号的方法:

https://blog.csdn.net/hepingdev/article/details/125489193

有了证书后,就可以创建证书进行打包了,假如是生成上架或测试打包的证书,可以参考这篇文章:

https://blog.csdn.net/handsome0916/article/details/140115616

假如是想生成企业in house类型的证书,可参考这篇文章

https://blog.csdn.net/handsome0916/article/details/140435304

通过上述教程生成证书后,就可以安装或者上架。

假如是上架,可以参考这篇文章:

https://zhuanlan.zhihu.com/p/352455941

继续阅读 »

ios的证书创建、安装或上架,并没有安卓这么简单直接。它的打包需要通过苹果开发者中心生成证书,安装的话,也是根据证书的类型决定,假如是普通的证书或普通company证书只能上架才能安装(测试的话有其他安装方法,那是另外的话题),假如是企业类型的in house证书,则可以通过在线安装的方式,比如通过上传到一些分发平台,比如香蕉云编或蒲公英生成安装码扫码安装。

因为生成证书需要苹果开发者账号,开发者根据是否需要上架选择不同的类型注册。

下面是申请公司或企业类型的苹果开发者账号的方法:

https://blog.csdn.net/hepingdev/article/details/125489193

有了证书后,就可以创建证书进行打包了,假如是生成上架或测试打包的证书,可以参考这篇文章:

https://blog.csdn.net/handsome0916/article/details/140115616

假如是想生成企业in house类型的证书,可参考这篇文章

https://blog.csdn.net/handsome0916/article/details/140435304

通过上述教程生成证书后,就可以安装或者上架。

假如是上架,可以参考这篇文章:

https://zhuanlan.zhihu.com/p/352455941

收起阅读 »

社区插件用的真烦 想用插件根本就联系不到人

uniapp插件

写了插件 然后也不留联系方式, 弄个交流群 说话也没人回 写插件的时候能不能留一下联系人

如果你免费不留也就算了 买了插件 使用各种问题 联系不到人 白白浪费了 例子也不全 也不留截图

写了插件 然后也不留联系方式, 弄个交流群 说话也没人回 写插件的时候能不能留一下联系人

如果你免费不留也就算了 买了插件 使用各种问题 联系不到人 白白浪费了 例子也不全 也不留截图

关于map组件markers的自定义icon不显示

map

目前我遇到的是因为markers的id相同所以不显示,需要设置不同的id

注:
如果icon不显示,可以设置以下几种方式,有时候加载会慢一点
1.使用静态资源
2.使用网络资源

  1. 把图片转成base64

目前我遇到的是因为markers的id相同所以不显示,需要设置不同的id

注:
如果icon不显示,可以设置以下几种方式,有时候加载会慢一点
1.使用静态资源
2.使用网络资源

  1. 把图片转成base64

[项目外包]外包一个UNIAPP项目

外包

需开发一个安卓APP项目,TV端,APP需打包为启动器,能自动热更,能自动下载APP并安装等一些功能,有兴趣的联系我啦~~

需开发一个安卓APP项目,TV端,APP需打包为启动器,能自动热更,能自动下载APP并安装等一些功能,有兴趣的联系我啦~~

通过包名获取软件的基本信息

代码:

// 通过包名获取应用基本信息  形参:包名  返回信息{code: true/fals, information: {"appName":"NP管理器","packageName":"player.normal.np","versionName":"3.0.54","versionCode":20221004}}  
function getAppInformation(package_name, information) {  
    function isEmptyObject(obj) {  
        return Object.keys(obj).length === 0;  
    }  
    plus.android.importClass('java.util.ArrayList');  
    plus.android.importClass('android.content.pm.PackageInfo');  
    plus.android.importClass('android.content.pm.PackageManager');  
    var ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');  
    var MainActivity = plus.android.runtimeMainActivity();  
    var PackageManager = MainActivity.getPackageManager();  
    var pinfo = plus.android.invoke(PackageManager, 'getInstalledPackages', 0)  
    if (pinfo != null) {  
        var apkdist = {}  
        for (var i = 0; i < pinfo.size(); i++) {  
            //PackageInfo{4b45699f9d  com.tencent.mobileqq}      
            var pkginfo = pinfo.get(i);  
            var issysapk = ((pkginfo.plusGetAttribute("applicationInfo").plusGetAttribute("flags") & ApplicationInfo.FLAG_SYSTEM) != 0) ? true : false  
            if (issysapk == false && pkginfo.plusGetAttribute("packageName") === package_name) {  
                apkdist.appName = pkginfo.plusGetAttribute("applicationInfo").loadLabel(PackageManager).toString();  
                apkdist.packageName = pkginfo.plusGetAttribute("packageName");  
                apkdist.versionName = pkginfo.plusGetAttribute("versionName");  
                apkdist.versionCode = pkginfo.plusGetAttribute("versionCode");  
            }  
        }  
        if (typeof information === 'function' && isEmptyObject(apkdist) === false) {  
            information(null, {code: true, information: apkdist})  
        }else {  
            if (typeof information === 'function') {  
                information(null, {code: false, information: {}})  
            }  
        }  
    }  
}

使用方法:

getAppInformation('你要获取的应用包名', function(err, data) {  
       console.log(JSON.stringify(data))  
})
继续阅读 »

代码:

// 通过包名获取应用基本信息  形参:包名  返回信息{code: true/fals, information: {"appName":"NP管理器","packageName":"player.normal.np","versionName":"3.0.54","versionCode":20221004}}  
function getAppInformation(package_name, information) {  
    function isEmptyObject(obj) {  
        return Object.keys(obj).length === 0;  
    }  
    plus.android.importClass('java.util.ArrayList');  
    plus.android.importClass('android.content.pm.PackageInfo');  
    plus.android.importClass('android.content.pm.PackageManager');  
    var ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');  
    var MainActivity = plus.android.runtimeMainActivity();  
    var PackageManager = MainActivity.getPackageManager();  
    var pinfo = plus.android.invoke(PackageManager, 'getInstalledPackages', 0)  
    if (pinfo != null) {  
        var apkdist = {}  
        for (var i = 0; i < pinfo.size(); i++) {  
            //PackageInfo{4b45699f9d  com.tencent.mobileqq}      
            var pkginfo = pinfo.get(i);  
            var issysapk = ((pkginfo.plusGetAttribute("applicationInfo").plusGetAttribute("flags") & ApplicationInfo.FLAG_SYSTEM) != 0) ? true : false  
            if (issysapk == false && pkginfo.plusGetAttribute("packageName") === package_name) {  
                apkdist.appName = pkginfo.plusGetAttribute("applicationInfo").loadLabel(PackageManager).toString();  
                apkdist.packageName = pkginfo.plusGetAttribute("packageName");  
                apkdist.versionName = pkginfo.plusGetAttribute("versionName");  
                apkdist.versionCode = pkginfo.plusGetAttribute("versionCode");  
            }  
        }  
        if (typeof information === 'function' && isEmptyObject(apkdist) === false) {  
            information(null, {code: true, information: apkdist})  
        }else {  
            if (typeof information === 'function') {  
                information(null, {code: false, information: {}})  
            }  
        }  
    }  
}

使用方法:

getAppInformation('你要获取的应用包名', function(err, data) {  
       console.log(JSON.stringify(data))  
})
收起阅读 »

UniDevTools - UniApp调试工具推荐

WebView调试 nvue vue3 真机调试

<b>在线文档 - 完整版使用教程:<br>
https://dev.api0.cn


不知道大家是否和我一样已经受够了使用Uniapp开发APP时需要插USB线连着HbuilderX才能看到console打印,各项指标数据全是黑盒,开发APP时无法选择调试节点等各类头疼问题。Uniapp官方一直没有一个标准的调试工具,为什么不能像Chrome调试工具一样调试App呢?为此我们开发了一个插件,把这些痛点问题依次解决!

UniDevTools是一个UniApp工具库,包含console打印日志、request请求记录、storage缓存管理、vuex状态管理、框架报错记录、文件管理等多功能调试工具合集:

  • Tools 常用工具(重启、请求构建、跳转指定页面、注入VConsole、Eruda)、自定义工具页
  • Error 全局报错拦截:vue模板报错、uniapp框架报错
  • Console 打印日志记录
  • Network request请求记录、重发请求
  • JsRunner 执行js代码、支持App和H5端
  • Storage 缓存管理,支持localStorage、cookie、sessionStorage
  • Pages 路由页面管理、日活时间记录
  • Vuex 状态管理,支持VuexPiniaglobalData
  • Logs 框架运行日志、框架api调用日志、自定义上报的日志记录
  • Info 当前设备参数、App启动参数、运行时信息、权限列表
  • UniBus uni框架事件总线调用记录
  • FileSys 本地文件管理系统
  • Setting DevTools工具设置、清空全部缓存、导出全部日志
兼容框架: Vue2+js+vuex Vue3+ts+vuex(pinia)
兼容平台: H5 APP 微信小程序 APP-NVUE 其他小程序 UniAppX
√(大部分功能支持) 未测试 × (待办中)

<b>本工具支持在<span style="color: red;">生产环境</span>中使用</b><br>
<span style="font-size: 13px;">生产环境使用时建议隐藏调试浮窗,可设置通过特定方法进入调试页</span>

下载运行本示例项目使用说明:

注意该项目使用Cli模式搭建,请勿导入HBuilderX中运行<br>
开始前请先准备好环境:node18 + pnpm

  1. 克隆项目到本地:
    git clone https://github.com/1615958039/UniDevTools.git
  2. 进入项目
    cd ./UniDevTools
  3. 安装依赖
    pnpm i
  4. 启动预览H5
    pnpm run dev:h5

说明:示例基于UniApp+Vue3+ts+Vite,UI框架为TM-UI3.1

把调试工具引入自己项目:

  1. 下载最新源码包v3.4.5

    GitHub: releases <br>
    Gitee: releases <br>
    备用:v3.4.5_r.zip

  2. 引入项目(请移步至在线文档):https://dev.api0.cn/guide/install

示例项目

《斗图助手APP》表情包制作工具<br>
该项目基于Uniapp+Vue2,已集成DevTools工具<br>
打开APP后在搜索页输入__devtools__即可打开调试弹窗查看请求和日志数据

<div class="qrCodeList" style="display: flex;flex-direction: row; align-items: center;gap: 30px;flex-wrap: wrap;">
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/iosAppStore.png" style="width: 160px;height: 160px;">
<div class="codeTitle">苹果AppStore</div>
</div>
<br><br><br>
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/androidYYB.png" style="width: 160px;height: 160px;">
<div class="codeTitle">安卓应用宝</div>
</div>
<br><br><br>
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/wxmp.jpg" style="width: 160px;height: 160px;">
<div class="codeTitle">微信小程序</div>
</div>
<br><br><br>
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/web.png" style="width: 160px;height: 160px;">
<div class="codeTitle">H5</div>
</div>
</div>

继续阅读 »

<b>在线文档 - 完整版使用教程:<br>
https://dev.api0.cn


不知道大家是否和我一样已经受够了使用Uniapp开发APP时需要插USB线连着HbuilderX才能看到console打印,各项指标数据全是黑盒,开发APP时无法选择调试节点等各类头疼问题。Uniapp官方一直没有一个标准的调试工具,为什么不能像Chrome调试工具一样调试App呢?为此我们开发了一个插件,把这些痛点问题依次解决!

UniDevTools是一个UniApp工具库,包含console打印日志、request请求记录、storage缓存管理、vuex状态管理、框架报错记录、文件管理等多功能调试工具合集:

  • Tools 常用工具(重启、请求构建、跳转指定页面、注入VConsole、Eruda)、自定义工具页
  • Error 全局报错拦截:vue模板报错、uniapp框架报错
  • Console 打印日志记录
  • Network request请求记录、重发请求
  • JsRunner 执行js代码、支持App和H5端
  • Storage 缓存管理,支持localStorage、cookie、sessionStorage
  • Pages 路由页面管理、日活时间记录
  • Vuex 状态管理,支持VuexPiniaglobalData
  • Logs 框架运行日志、框架api调用日志、自定义上报的日志记录
  • Info 当前设备参数、App启动参数、运行时信息、权限列表
  • UniBus uni框架事件总线调用记录
  • FileSys 本地文件管理系统
  • Setting DevTools工具设置、清空全部缓存、导出全部日志
兼容框架: Vue2+js+vuex Vue3+ts+vuex(pinia)
兼容平台: H5 APP 微信小程序 APP-NVUE 其他小程序 UniAppX
√(大部分功能支持) 未测试 × (待办中)

<b>本工具支持在<span style="color: red;">生产环境</span>中使用</b><br>
<span style="font-size: 13px;">生产环境使用时建议隐藏调试浮窗,可设置通过特定方法进入调试页</span>

下载运行本示例项目使用说明:

注意该项目使用Cli模式搭建,请勿导入HBuilderX中运行<br>
开始前请先准备好环境:node18 + pnpm

  1. 克隆项目到本地:
    git clone https://github.com/1615958039/UniDevTools.git
  2. 进入项目
    cd ./UniDevTools
  3. 安装依赖
    pnpm i
  4. 启动预览H5
    pnpm run dev:h5

说明:示例基于UniApp+Vue3+ts+Vite,UI框架为TM-UI3.1

把调试工具引入自己项目:

  1. 下载最新源码包v3.4.5

    GitHub: releases <br>
    Gitee: releases <br>
    备用:v3.4.5_r.zip

  2. 引入项目(请移步至在线文档):https://dev.api0.cn/guide/install

示例项目

《斗图助手APP》表情包制作工具<br>
该项目基于Uniapp+Vue2,已集成DevTools工具<br>
打开APP后在搜索页输入__devtools__即可打开调试弹窗查看请求和日志数据

<div class="qrCodeList" style="display: flex;flex-direction: row; align-items: center;gap: 30px;flex-wrap: wrap;">
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/iosAppStore.png" style="width: 160px;height: 160px;">
<div class="codeTitle">苹果AppStore</div>
</div>
<br><br><br>
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/androidYYB.png" style="width: 160px;height: 160px;">
<div class="codeTitle">安卓应用宝</div>
</div>
<br><br><br>
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/wxmp.jpg" style="width: 160px;height: 160px;">
<div class="codeTitle">微信小程序</div>
</div>
<br><br><br>
<div class="codeItem">
<img src="https://dev.api0.cn/qrCode/web.png" style="width: 160px;height: 160px;">
<div class="codeTitle">H5</div>
</div>
</div>

收起阅读 »

离线打包 Vue2 项目,无法使用uni.createRequestPermissionListener()

离线打包 uni-app
  1. 升级到4.23后调用uni.createRequestPermissionListener() 提示[JS Framework] 当前运行的基座不包含原生插件[UTS-Proxy],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
  2. 引入utsplugin-release.aar后,提示打包时未添加uni-createRequestPermissionListener
  3. 引入uni-createRequestPermissionListener-release.aar后,仍然提示打包时未添加uni-createRequestPermissionListener
继续阅读 »
  1. 升级到4.23后调用uni.createRequestPermissionListener() 提示[JS Framework] 当前运行的基座不包含原生插件[UTS-Proxy],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
  2. 引入utsplugin-release.aar后,提示打包时未添加uni-createRequestPermissionListener
  3. 引入uni-createRequestPermissionListener-release.aar后,仍然提示打包时未添加uni-createRequestPermissionListener
收起阅读 »