HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

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"  
            }  
        }  
    }
收起阅读 »

关于uniapp的rich-text组件 动态注入的HTML代码中包含a标签 不能点击跳转的解决方法

Webview 页面跳转 uparse richtext uniapp

一年多前的一个提问,结果到现在还有很多人来加我q问我怎么解决

在这里统一回复下,关于rich-text组件动态注入的HTML代码中包含a标签 不能点击跳转

解决方法:

可以将rich-text组件换成uParse组件,uParse组件可以实现动态注入a标签跳转

<uParse :content="strings" @preview="preview" @navigate="navigate" />

navigate就是点击跳转方法

在method中加上navigate函数:

navigate(href, e) {  
    //比如点击a标签,打开某个webview并传输url  
     uni.navigateTo({  
        url: '/pages/goodsDetail/webView?url=' + href  
     })  
}
继续阅读 »

一年多前的一个提问,结果到现在还有很多人来加我q问我怎么解决

在这里统一回复下,关于rich-text组件动态注入的HTML代码中包含a标签 不能点击跳转

解决方法:

可以将rich-text组件换成uParse组件,uParse组件可以实现动态注入a标签跳转

<uParse :content="strings" @preview="preview" @navigate="navigate" />

navigate就是点击跳转方法

在method中加上navigate函数:

navigate(href, e) {  
    //比如点击a标签,打开某个webview并传输url  
     uni.navigateTo({  
        url: '/pages/goodsDetail/webView?url=' + href  
     })  
}
收起阅读 »

uni-app 手势事件解析,uni点击方法

uni_app uniapp

查看了官方的文档没有解释手势事件。只有一些方法,所以列举出来方便大家使用:

@click 组件被点击  
@longpress 长按(手指触摸超过350ms)  
@longtap 长按  
@tap 点击  
@touchcancel 手指触摸被打断,如来电提醒,弹窗  
@touchend 手指触摸动作结束,如松开按钮  
@touchmove 手指触摸后移动  
@touchstart 手指触摸动作开始
继续阅读 »

查看了官方的文档没有解释手势事件。只有一些方法,所以列举出来方便大家使用:

@click 组件被点击  
@longpress 长按(手指触摸超过350ms)  
@longtap 长按  
@tap 点击  
@touchcancel 手指触摸被打断,如来电提醒,弹窗  
@touchend 手指触摸动作结束,如松开按钮  
@touchmove 手指触摸后移动  
@touchstart 手指触摸动作开始
收起阅读 »

分享一下进入当前页面如何让页面、滚动条自动滑动到顶部,类似于iOS端点击顶部状态栏效果

onshow 经验分享 Android iOS scroll uniapp 双击顶部滚到顶 滑动

最近做项目,刚好遇到这个问题,就拿来分享一下,希望对大家有帮助!

首先在data里面设置一个参数 scrollTop: 0


然后在onshow里加上这段代码
其中duration参数是滑动速度,基础单位1000为1s

最后加上这段onPageScroll函数代码

完结~

继续阅读 »

最近做项目,刚好遇到这个问题,就拿来分享一下,希望对大家有帮助!

首先在data里面设置一个参数 scrollTop: 0


然后在onshow里加上这段代码
其中duration参数是滑动速度,基础单位1000为1s

最后加上这段onPageScroll函数代码

完结~

收起阅读 »