HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

插件开发

插件开发 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

收起阅读 »

【分享】Mac系统新版本 HBuilder X 调试选择运行到iOS模拟器时,识别不出iOS模拟器解决方案

调试 ios模拟器 模拟器 iOS HBuilder

需要打开XCode在Preferences里的Locations选择设置Command Line Tools,然后重启HBuilder X

如图:

需要打开XCode在Preferences里的Locations选择设置Command Line Tools,然后重启HBuilder X

如图:

uni.request传递复杂对象

uniapp

js版serialize 实现
function serialize (obj, prefix) {
const str = []
let p
if (obj.length === 0) {
// str.push(encodeURIComponent(prefix) + '=1')
} else {
for (p in obj) {
if (obj.hasOwnProperty(p)) {
const k = prefix ? prefix + '[' + p + ']' : p
let v = obj[p]
if (v instanceof Date) {
v = parseTime(v)
}
str.push((v !== null && typeof v === 'object') ? serialize(v, k) : encodeURIComponent(k) + '=' + encodeURIComponent(
v))
}
}
}

return str.join('&')
}

uni.request.data改造
options.data = serialize(options.data)

继续阅读 »

js版serialize 实现
function serialize (obj, prefix) {
const str = []
let p
if (obj.length === 0) {
// str.push(encodeURIComponent(prefix) + '=1')
} else {
for (p in obj) {
if (obj.hasOwnProperty(p)) {
const k = prefix ? prefix + '[' + p + ']' : p
let v = obj[p]
if (v instanceof Date) {
v = parseTime(v)
}
str.push((v !== null && typeof v === 'object') ? serialize(v, k) : encodeURIComponent(k) + '=' + encodeURIComponent(
v))
}
}
}

return str.join('&')
}

uni.request.data改造
options.data = serialize(options.data)

收起阅读 »

【分享】关于uniapp如何修改动态修改titleNView中的buttons按钮样式和文字

button titleNView uniapp
var webView = this.$mp.page.$getAppWebview();    

// 修改buttons    
// index: 按钮索引, style {WebviewTitleNViewButtonStyles }    
    webView.setTitleNViewButtonStyle(0, {    
         text: '我是被修改的文字',    
});
继续阅读 »
var webView = this.$mp.page.$getAppWebview();    

// 修改buttons    
// index: 按钮索引, style {WebviewTitleNViewButtonStyles }    
    webView.setTitleNViewButtonStyle(0, {    
         text: '我是被修改的文字',    
});
收起阅读 »

【分享】js正则表达式 如何验证邮箱?

js uniapp 正则
var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;  
var email = "xxxx@qq.com";  
if (reg.test(email) {  
    alert("邮箱格式正确");  
}else{  
    alert("邮箱格式不正确");  
}
继续阅读 »
var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;  
var email = "xxxx@qq.com";  
if (reg.test(email) {  
    alert("邮箱格式正确");  
}else{  
    alert("邮箱格式不正确");  
}
收起阅读 »

承接uniapp项目外包,网站、APP、小程序。前后台都可以写。欢迎咨询微信batik88

招聘 外包

承接uniapp项目外包,网站、APP、小程序。前后台都可以写。欢迎咨询微信 batik88

承接uniapp项目外包,网站、APP、小程序。前后台都可以写。欢迎咨询微信 batik88

uni-app调微信分享微信小程序 由于应用universal link校验不通过

不管是微信分享, 还是跳转小程序, 老提示:由于应用universal link校验不通过

前提条件:用uni-app本地打包, 然后用Xcode原生打包

按网上的方法,检查各种配置,都未能解决,选择排出以下几个情况
1、bundle Id中的teamId写错
2、与微信开放平台不一致
3、apple-app-site-association加了json后缀

这些都对过了,都是正确了,最后实现没有招,用了亘古科技的代理试了,马上成功了,
然后就比对亘古科技生成的apple-app-site-association定位到问题点,
公司服务器上只是把这个文件丢根目录,https:/xxx/apple-app-site-association 只可以下载文件,不是直接输出

正确配置是要直接输出,我用nginx的配置如下:

        location /apple-app-site-association {  
            default_type application/json;  
            root /home/webapp/html;  
        }

配置过程比较有效贴子:
https://cloud.tencent.com/developer/article/1146932

https://www.cnblogs.com/guoshaobin/p/11164000.html

继续阅读 »

不管是微信分享, 还是跳转小程序, 老提示:由于应用universal link校验不通过

前提条件:用uni-app本地打包, 然后用Xcode原生打包

按网上的方法,检查各种配置,都未能解决,选择排出以下几个情况
1、bundle Id中的teamId写错
2、与微信开放平台不一致
3、apple-app-site-association加了json后缀

这些都对过了,都是正确了,最后实现没有招,用了亘古科技的代理试了,马上成功了,
然后就比对亘古科技生成的apple-app-site-association定位到问题点,
公司服务器上只是把这个文件丢根目录,https:/xxx/apple-app-site-association 只可以下载文件,不是直接输出

正确配置是要直接输出,我用nginx的配置如下:

        location /apple-app-site-association {  
            default_type application/json;  
            root /home/webapp/html;  
        }

配置过程比较有效贴子:
https://cloud.tencent.com/developer/article/1146932

https://www.cnblogs.com/guoshaobin/p/11164000.html

收起阅读 »

scrollview 如何在ios上隐藏滚动条的解决方案

去掉滚动条 scrollview uniapp

配置文件pages.json文件里,app-plus中设置:

"scrollIndicator": "none"

参考设置:

     {  
        "path": "pages/xxxx/xxxxxx",  
        "style": {  
            "navigationBarTitleText": "xxxx",  
            "app-plus": {  
                "titleNView": {  
                    "titleColor": "#FFFFFF",  
                    "backgroundColor": "#E41F19",  
                    "pullToRefresh": {  
                        "support": false  
                    }  
                },  
                "enablePullDownRefresh": false,  
                 //滚动条显示策略,设置为 "none" 时不显示滚动条  
                "scrollIndicator": "none"  
            }  
        }  
    }
继续阅读 »

配置文件pages.json文件里,app-plus中设置:

"scrollIndicator": "none"

参考设置:

     {  
        "path": "pages/xxxx/xxxxxx",  
        "style": {  
            "navigationBarTitleText": "xxxx",  
            "app-plus": {  
                "titleNView": {  
                    "titleColor": "#FFFFFF",  
                    "backgroundColor": "#E41F19",  
                    "pullToRefresh": {  
                        "support": false  
                    }  
                },  
                "enablePullDownRefresh": false,  
                 //滚动条显示策略,设置为 "none" 时不显示滚动条  
                "scrollIndicator": "none"  
            }  
        }  
    }
收起阅读 »