HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uni-app 部署 H5 到相对路径(含file协议打开)

uni_app

自 HBuilderX 2.6.6 版本开始,uni-app 支持部署 H5 到相对路径,部署到服务端或在本地(使用file协议)打开均可。

使用方式

配置 manifest.json 配置 h5->router->base 值为 "./" 部署到相对路径

注意事项

按相对路径发行时路由模式强制为hash模式,不支持history模式(两者相悖)。

继续阅读 »

自 HBuilderX 2.6.6 版本开始,uni-app 支持部署 H5 到相对路径,部署到服务端或在本地(使用file协议)打开均可。

使用方式

配置 manifest.json 配置 h5->router->base 值为 "./" 部署到相对路径

注意事项

按相对路径发行时路由模式强制为hash模式,不支持history模式(两者相悖)。

收起阅读 »

uni.downloadFile()下载文件1次后无法下载解决方案

uniapp

只要下载完成后中断下载任务即可

const downloadTask = uni.downloadFile({  
    url: 'http://www.example.com/file/test', //仅为示例,并非真实的资源  
    success: (res) => {  
        if (res.statusCode === 200) {  
            console.log('下载成功');  
            uni.saveFile({  
                tempFilePath: res.tempFilePath,  
                success: function(red) {  
                    console.log('保存成功')  
                    console.log('任务完成,中断下载任务')  
                    downloadTask.abort()//中断下载任务  
                }  
            });  
        }  
    }  
});  

downloadTask.onProgressUpdate((res) => {  
    console.log('下载进度' + res.progress);  
    console.log('已经下载的数据长度' + res.totalBytesWritten);  
    console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);  
});  
继续阅读 »

只要下载完成后中断下载任务即可

const downloadTask = uni.downloadFile({  
    url: 'http://www.example.com/file/test', //仅为示例,并非真实的资源  
    success: (res) => {  
        if (res.statusCode === 200) {  
            console.log('下载成功');  
            uni.saveFile({  
                tempFilePath: res.tempFilePath,  
                success: function(red) {  
                    console.log('保存成功')  
                    console.log('任务完成,中断下载任务')  
                    downloadTask.abort()//中断下载任务  
                }  
            });  
        }  
    }  
});  

downloadTask.onProgressUpdate((res) => {  
    console.log('下载进度' + res.progress);  
    console.log('已经下载的数据长度' + res.totalBytesWritten);  
    console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);  
});  
收起阅读 »

HBuilderX: FTP插件/SFTP插件使用教程 (适用HBuilderX 2.7.12+版本)

HBuilderX

本文档仅适用于HBuilderX 2.7.12+版本

SFTP/FTP插件市场插件地址

1. sftp/ftp插件简介

HBuilderX 2.7.12+版本,优化了SFTP/FTP插件

此插件是vscode中流行的ftp插件,因HBuilderX兼容vscode的部分插件生态,也可以在HBuilderX中使用。

  • 使用此插件,可将本地工作区文件,与FTP服务器或linux服务器文件同步。
  • 支持ftp/sftp协议
  • 支持远程文件目录浏览上传下载删除
  • 支持自动保存上传

2. sftp/ftp使用介绍

使用步骤:

  1. 如下图,在项目管理器,新建一个空目录或空项目,然后选中
  2. 右键菜单,点击【Ftp: 创建连接配置】
  3. 系统自动创建.ftp/ftp-sync.json配置文件
  4. 编辑ftp-sync.json, 填写host(ip)username(用户名)password(密码)port(端口)protocol(协议)
  5. 填写完配置文件,右键菜单,点击【Ftp: 浏览远程文件】
  6. 选择文件目录,进行上传下载删除操作

2.1 创建ftp/sftp配置文件

2.2 同步目录

  • 从远程同步到本地
  • 从本地同步到远程

2.3 本地编辑远程文件、删除远程文件

3. ftp配置文件参数说明

{  
    "name": "Linux测试服务器",  
    "host": "ip地址",  
    "protocol": "sftp",  
    "port": 22,  
    "username": "用户名",  
    "password": "密码",  
    "remotePath": "远程目录",  
    "uploadOnSave": false  
}

注意:配置文件是放在项目下的普通json文件,存放着ftp账号。若你的项目使用三方node库,请注意其可靠性,避免ftp账户失窃

4.FTP、sftp协议说明

本插件支持FTP、sftp两种协议。

如果远程服务器,搭建了ftp服务,usernamepassword需要填写ftp的用户密码

sftp不需要任何配置,开启SSH默认就开启了SFTP。也就是说,如果您的远程服务器为linux系统,即使没有搭建ftp服务,也可以通过sftp连接,使用文件同步的服务。

  • SSH/SFTP,默认端口为:22
  • 使用sftp服务,usernamepassword,需要填写目标电脑的用户、密码

5. ftp/sftp 菜单配置快捷键

菜单【工具】【自定义快捷键】,即可对sftp相关菜单配置快捷键。

具体如下, 可以把key值改成自己想要的快捷键

[  
    // 浏览远程文件  
    {  
        "key": "ctrl+shift+w",  
        "command": "sftp.revealInRemoteExplorer"  
    },  
    // 同步远程数据到本地  
    {  
        "key": "ctrl+shift+r",  
        "command": "sftp.sync.remoteToLocal"  
    },  
    // 同步本地数据到远程  
    {  
        "key": "ctrl+shift+l",  
        "command": "sftp.sync.localToRemote"  
    },  
    // 上传当前文件夹  
    {  
        "key": "ctrl+shift+h",  
        "command": "sftp.upload.folder"  
    },  
    // 下载当前文件夹  
    {  
        "key": "ctrl+shift+q",  
        "command": "sftp.download.folder"  
    },  
    // 项目管理器 右键菜单 FTP: 上传选中文件  
    {  
        "key": "ctrl+shift+u",  
        "command": "sftp.upload.file"  
    },  
    // 在本地编辑远程文件  
    {  
        "key": "ctrl+shift+e",  
        "command": "sftp.remoteExplorer.editInLocal"  
    },  
    // 删除远程文件  
    {  
        "key": "ctrl+shift+d",  
        "command": "sftp.delete.remote"  
    },  
    // 刷新  
    {  
        "key": "ctrl+shift+f",  
        "command": "sftp.remoteExplorer.refresh"  
    }  
]  
继续阅读 »

本文档仅适用于HBuilderX 2.7.12+版本

SFTP/FTP插件市场插件地址

1. sftp/ftp插件简介

HBuilderX 2.7.12+版本,优化了SFTP/FTP插件

此插件是vscode中流行的ftp插件,因HBuilderX兼容vscode的部分插件生态,也可以在HBuilderX中使用。

  • 使用此插件,可将本地工作区文件,与FTP服务器或linux服务器文件同步。
  • 支持ftp/sftp协议
  • 支持远程文件目录浏览上传下载删除
  • 支持自动保存上传

2. sftp/ftp使用介绍

使用步骤:

  1. 如下图,在项目管理器,新建一个空目录或空项目,然后选中
  2. 右键菜单,点击【Ftp: 创建连接配置】
  3. 系统自动创建.ftp/ftp-sync.json配置文件
  4. 编辑ftp-sync.json, 填写host(ip)username(用户名)password(密码)port(端口)protocol(协议)
  5. 填写完配置文件,右键菜单,点击【Ftp: 浏览远程文件】
  6. 选择文件目录,进行上传下载删除操作

2.1 创建ftp/sftp配置文件

2.2 同步目录

  • 从远程同步到本地
  • 从本地同步到远程

2.3 本地编辑远程文件、删除远程文件

3. ftp配置文件参数说明

{  
    "name": "Linux测试服务器",  
    "host": "ip地址",  
    "protocol": "sftp",  
    "port": 22,  
    "username": "用户名",  
    "password": "密码",  
    "remotePath": "远程目录",  
    "uploadOnSave": false  
}

注意:配置文件是放在项目下的普通json文件,存放着ftp账号。若你的项目使用三方node库,请注意其可靠性,避免ftp账户失窃

4.FTP、sftp协议说明

本插件支持FTP、sftp两种协议。

如果远程服务器,搭建了ftp服务,usernamepassword需要填写ftp的用户密码

sftp不需要任何配置,开启SSH默认就开启了SFTP。也就是说,如果您的远程服务器为linux系统,即使没有搭建ftp服务,也可以通过sftp连接,使用文件同步的服务。

  • SSH/SFTP,默认端口为:22
  • 使用sftp服务,usernamepassword,需要填写目标电脑的用户、密码

5. ftp/sftp 菜单配置快捷键

菜单【工具】【自定义快捷键】,即可对sftp相关菜单配置快捷键。

具体如下, 可以把key值改成自己想要的快捷键

[  
    // 浏览远程文件  
    {  
        "key": "ctrl+shift+w",  
        "command": "sftp.revealInRemoteExplorer"  
    },  
    // 同步远程数据到本地  
    {  
        "key": "ctrl+shift+r",  
        "command": "sftp.sync.remoteToLocal"  
    },  
    // 同步本地数据到远程  
    {  
        "key": "ctrl+shift+l",  
        "command": "sftp.sync.localToRemote"  
    },  
    // 上传当前文件夹  
    {  
        "key": "ctrl+shift+h",  
        "command": "sftp.upload.folder"  
    },  
    // 下载当前文件夹  
    {  
        "key": "ctrl+shift+q",  
        "command": "sftp.download.folder"  
    },  
    // 项目管理器 右键菜单 FTP: 上传选中文件  
    {  
        "key": "ctrl+shift+u",  
        "command": "sftp.upload.file"  
    },  
    // 在本地编辑远程文件  
    {  
        "key": "ctrl+shift+e",  
        "command": "sftp.remoteExplorer.editInLocal"  
    },  
    // 删除远程文件  
    {  
        "key": "ctrl+shift+d",  
        "command": "sftp.delete.remote"  
    },  
    // 刷新  
    {  
        "key": "ctrl+shift+f",  
        "command": "sftp.remoteExplorer.refresh"  
    }  
]  
收起阅读 »

uniApp插件开发

插件开发

IOS、Android原生插件开发,第三方插件集成前端界面定制开发。联系方式QQ:1030767391

IOS、Android原生插件开发,第三方插件集成前端界面定制开发。联系方式QQ:1030767391

关于iOS审核上架出现The review of your app is taking longer than expected的解决方案

iOS 审核 Appstore 上架

发件人 Apple
Other - Other
Hello,

The review of your app is taking longer than expected. Once we have completed our review, we will notify you via Resolution Center.

If you would like to inquire about the status of this review, you may file a request via the Apple Developer Contact Us page.

Best regards,

App Store Review

这是苹果最近新出的一个审核条例,是针对开发者账号的一个审查,大概意思就是:

开发者,我是你爸爸。

开个玩笑,很多人都遇到这个问题,做了这么久上架,还是第一次遇到这么个情况

我凌晨一点多提了一个包,然后早上六点多进入审核,然后就进入了被拒状态


上来解决方案中心里一看,被拒具体理由也没说,反正就是被拒

我这个账号是新注册的开发者账号,App也是开发了两个多月的新App,确保网上没有任何提过的马甲包,实在是一头雾水

网上搜了一圈,最近大多数人都遇到了这个情况,我已经尝试去跟苹果审核这边沟通了

具体情况暂且不说,至于是否通过审核,过几天再上来回复,如果过了,会再发一下详细教程~

有想要交流上架的朋友的可以加我QQ交流一下,专业代上架,QQ:1481983952

6月15日更

有点意思,给我发了个审核邮件,大概意思是现在针对账号调查还没结束,还没开始审核App,还需要更多的调查时间

这更坚定了我的想法这次的other被拒不是针对App,而是针对开发者账号的

持续更新中。。。

继续阅读 »

发件人 Apple
Other - Other
Hello,

The review of your app is taking longer than expected. Once we have completed our review, we will notify you via Resolution Center.

If you would like to inquire about the status of this review, you may file a request via the Apple Developer Contact Us page.

Best regards,

App Store Review

这是苹果最近新出的一个审核条例,是针对开发者账号的一个审查,大概意思就是:

开发者,我是你爸爸。

开个玩笑,很多人都遇到这个问题,做了这么久上架,还是第一次遇到这么个情况

我凌晨一点多提了一个包,然后早上六点多进入审核,然后就进入了被拒状态


上来解决方案中心里一看,被拒具体理由也没说,反正就是被拒

我这个账号是新注册的开发者账号,App也是开发了两个多月的新App,确保网上没有任何提过的马甲包,实在是一头雾水

网上搜了一圈,最近大多数人都遇到了这个情况,我已经尝试去跟苹果审核这边沟通了

具体情况暂且不说,至于是否通过审核,过几天再上来回复,如果过了,会再发一下详细教程~

有想要交流上架的朋友的可以加我QQ交流一下,专业代上架,QQ:1481983952

6月15日更

有点意思,给我发了个审核邮件,大概意思是现在针对账号调查还没结束,还没开始审核App,还需要更多的调查时间

这更坚定了我的想法这次的other被拒不是针对App,而是针对开发者账号的

持续更新中。。。

收起阅读 »

5+插件开发

IOS、Android原生插件开发,第三方插件集成,原生插件开发指导;前端界面定制开发;7年IOS 5年Android 5年Hbuilder开发。联系方式QQ:1030767391

IOS、Android原生插件开发,第三方插件集成,原生插件开发指导;前端界面定制开发;7年IOS 5年Android 5年Hbuilder开发。联系方式QQ:1030767391

插件开发

插件开发 Android iOS

IOS、Android原生插件开发,第三方插件集成,原生插件开发指导;前端界面定制开发;7年IOS 5年Android 5年Hbuilder开发。联系方式QQ:1030767391

IOS、Android原生插件开发,第三方插件集成,原生插件开发指导;前端界面定制开发;7年IOS 5年Android 5年Hbuilder开发。联系方式QQ:1030767391

准备入Unicloud了

uniCloud

今天登陆Unicloud 后台,发现腾讯云给开了前端网页部署的功能,看了下价格还是很美丽的。不知道稳定性如何,测试用用。顺便问下,这个功能现在是全开放了,还是还在灰度呀。

顺便说一句,Dcloud雄起

今天登陆Unicloud 后台,发现腾讯云给开了前端网页部署的功能,看了下价格还是很美丽的。不知道稳定性如何,测试用用。顺便问下,这个功能现在是全开放了,还是还在灰度呀。

顺便说一句,Dcloud雄起

引用了一个组件的时候,在组件的下面v-for循环了一个请求的来的数据,结果打印数据的对象,引用的组件没问题,打印数据里面的数组(打印出来了),引用组件的css和js都加载不出来

自定义组件

cid unmatched [object Object] at view.umd.min.js:1
15:37:08.572 TypeError: Invalid attempt to destructure non-iterable instance.
15:37:08.592 In order to be iterable, non-array objects must have a [Symbol.iterator]() method. at view.umd.min.js:1
15:37:08.712 TypeError: undefined is not an object (evaluating '_vm.decoration_home.content.topSearch')
15:37:09.052 Not found -1,1 at view.umd.min.js:1

这些错也没有显示了

继续阅读 »

cid unmatched [object Object] at view.umd.min.js:1
15:37:08.572 TypeError: Invalid attempt to destructure non-iterable instance.
15:37:08.592 In order to be iterable, non-array objects must have a [Symbol.iterator]() method. at view.umd.min.js:1
15:37:08.712 TypeError: undefined is not an object (evaluating '_vm.decoration_home.content.topSearch')
15:37:09.052 Not found -1,1 at view.umd.min.js:1

这些错也没有显示了

收起阅读 »

uni-app input组件两次封装 value更新显示问题

input

uni-app和纯vueJs 区别挺大的

提一句(uni-app对于组件两次封装很不友好 属性事件不能透传 v-on v-bind不支持 当然render方法还没试 不清楚能否拿到input组件对象 或者 直接传 ‘input’是否能使用)
对于两次封装 如果在uni-app有啥其他黑科技 还请各位分享下!!!

说下经验: 自定义组件内封装了input组件 这时input组件上的value不应该用自定义组件内部的状态 (data里定义的)应该始终使用props传入的 (如果model没设置 那就是value了) 对于值的更新 应该始终向外emit (如果model没设置 那就是input)事件

继续阅读 »

uni-app和纯vueJs 区别挺大的

提一句(uni-app对于组件两次封装很不友好 属性事件不能透传 v-on v-bind不支持 当然render方法还没试 不清楚能否拿到input组件对象 或者 直接传 ‘input’是否能使用)
对于两次封装 如果在uni-app有啥其他黑科技 还请各位分享下!!!

说下经验: 自定义组件内封装了input组件 这时input组件上的value不应该用自定义组件内部的状态 (data里定义的)应该始终使用props传入的 (如果model没设置 那就是value了) 对于值的更新 应该始终向外emit (如果model没设置 那就是input)事件

收起阅读 »

uniapp开发的安卓app使用webview调起微信h5支付

nvue Webview

好迂回曲折的一次经历,必须记录。

近期使用uniapp开发了一个安卓app,由于申请微信App支还没有通过,于是就尝试一下用webview调起微信h5支付。

如是此研究了一下,就用了3天时间。

要解决的难题:

1、由app打开webview后,token和登录态共享问题

2、webview里面支付成功后,如何通知app端更新相关状态。

第一个问题比较简单,后端写个接口就解决了,这里不再描述。

第二个问题就比较麻烦。

查看uniapp关于webview文档

初时以为用vue写的网页能调起此api

事与愿违,尝试了一天都不行。

那就用纯html来写个简单的功能,当点击按钮时,nvue做的调起页,@onPostMessage能实时收到消息。

当你苦苦地写代码,一次一次调试都失败,突然有一次返回的数据,那种感受相信只有技术人才会明白。

总算找到了解决方法,再花了大半天将功能实现在html页上。本来用原有的框架几下就做完的功能(由于组件和函数,我都封装好了,调用就是),现在用纯原生的写法,实现起来花了好大的功夫。

总算写好,打包上线测试,兴奋地点击支付按钮时,谁知提示“商家存在未配置的参数,请联系商家解决”,用了网上找的方法,都无法解决。

我尝试将webview调起页由nvue改为vue,它就没那个提示了,能顺利支付。

但是vue页就无法实时收到消息了。

想到的解决方法有两个:
1、用socket来监听支付结果推送

2、在需要的页面onshow时,做相关处理

但是这两种方法都是权宜之计,无法在支付完成时马上判断支付成功还是失败真有些遗憾。


出自我的技术博客:https://blog.csdn.net/Wai_Leung/article/details/106595766

继续阅读 »

好迂回曲折的一次经历,必须记录。

近期使用uniapp开发了一个安卓app,由于申请微信App支还没有通过,于是就尝试一下用webview调起微信h5支付。

如是此研究了一下,就用了3天时间。

要解决的难题:

1、由app打开webview后,token和登录态共享问题

2、webview里面支付成功后,如何通知app端更新相关状态。

第一个问题比较简单,后端写个接口就解决了,这里不再描述。

第二个问题就比较麻烦。

查看uniapp关于webview文档

初时以为用vue写的网页能调起此api

事与愿违,尝试了一天都不行。

那就用纯html来写个简单的功能,当点击按钮时,nvue做的调起页,@onPostMessage能实时收到消息。

当你苦苦地写代码,一次一次调试都失败,突然有一次返回的数据,那种感受相信只有技术人才会明白。

总算找到了解决方法,再花了大半天将功能实现在html页上。本来用原有的框架几下就做完的功能(由于组件和函数,我都封装好了,调用就是),现在用纯原生的写法,实现起来花了好大的功夫。

总算写好,打包上线测试,兴奋地点击支付按钮时,谁知提示“商家存在未配置的参数,请联系商家解决”,用了网上找的方法,都无法解决。

我尝试将webview调起页由nvue改为vue,它就没那个提示了,能顺利支付。

但是vue页就无法实时收到消息了。

想到的解决方法有两个:
1、用socket来监听支付结果推送

2、在需要的页面onshow时,做相关处理

但是这两种方法都是权宜之计,无法在支付完成时马上判断支付成功还是失败真有些遗憾。


出自我的技术博客:https://blog.csdn.net/Wai_Leung/article/details/106595766

收起阅读 »