uni-app内置组件picker的change事件e.target.value不同平台不同数据类型
uni.chooseLocation() 无反应
1、打开微信公众平台申请权限
【开发】–【开发管理】–【接口设置】–点击去开通,开通之后才可以使用。
2、在配置文件中添加权限。
uni-app的修改 manifest.json
文件。
{
"mp-weixin": {
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos": ["chooseLocation"]
}
}
如果是原生开发,则需要修改app.json文件
{
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos": [
"getLocation",
"chooseLocation"
]
}
相关文档:
HbuilderX可以自动打开微信开发者工具,但无法打开对应项目的原因
主要表现:
- HbuilderX没有报错
- 能自动打卡微信开发者工具
- 无法打开对应的项目
可能是你没有权限,可能会造成这种原因的一个是你的微信账号没有该小程序的“开发者权限”,那么就需要在登录“微信公众平台”的【管理】-【成员管理】-【项目成员】添加“开发者权限”。
还有一种可能就是你的小程序AppID写错了。
教程:
- uni-app 图标库整合最佳实践:使用 iconfont 构建属于自己的图标库_uniapp图标库-CSDN博客
- uni-app 路由拦截uni-app 路由拦截 1. 路由拦截的第一种方式 思路:在需要鉴权的每一个页面中,判断 to – 掘金
- uniapp中的登录鉴权实现理清逻辑 登录限制的逻辑,简单划分一下就是下面几点: 登录成功时set一个token,没登录 – 掘金
内置组件Radio无法数据双向绑定
uni-app 内置组件的radio组件无法双向绑定,不能响应式的更新组件状态。
- radio-group的v-model无效,官方示例文档也没有标识v-model的使用。
- radio组件checked不能通过数据响应。
wot-design-uni就可以在radio-group上使用v-model实现数据双向绑定。
参考:
VS Code开发环境
- uni-create-view 快速创建 uniapp 视图与组件!可以配置模板生成的风格
uni-app ref获取不到元素
环境:uni-app、vue@3.5.13、compostion setup
uni-app官方说明了:ref 被用来给元素或子组件注册引用信息,非 H5 平台只能获取 vue 组件实例不能获取到内置组件实例,点击查看,全平台兼容方案使用:uni.createSelectorQuery() | uni-app官网
uni.createSelectorQuery().in(this)
.select('.comment-input')
.node()
.exec(res => {
console.log('方法1获取:', res);
if (res[0] && res[0].node) {
res[0].node.focus()
}
})
其他方式:
简单标签例如:view
这种
<view ref="el1">Hello uni-app</view>
const el1 = ref(null)
console.log(el1.value.$el.innerHTML)
使用div标签替代view就可以直接获取元素
<div ref="el1">Hello uni-app</div>
const el1 = ref(null)
console.log(el1.value.innerHTML)
如果是复杂的标签,比方input
,在uni-app中会生成嵌套代码:
<uni-input>
<div class="uni-input-wrapper">
<div class="uni-input-placeholder input-placeholder">
评论
</div>
<input/>
</div>
</uni-input>
所以得使用querySelector
来
<input ref="el1">Hello uni-app</input>
const el1 = ref(null)
console.log(el1.value.$el.querySelector('input').focus())
如果是外面还包了一层v-show
或者v-if
,得用`querySelectorAll再加上nextTick或setTimeout
nextTick(() => {
el1.value.$el.querySelectorAll('input').forEach(element => {
element.focus()
});
})
setTimeout(() => {
el1.value.$el.querySelectorAll('input').forEach(element => {
element.focus()
});
}, 60)
如果只是想做输入框聚焦、失焦功能,可以用focus
属性:
<input :focus="isFocus">
const isFocus = ref(true)
城市选择组件
这东西需要配合unicloud使用,而且有个不过就是H5用不了,具体表现为拿不到组件的实例,无法调用实例的open
方法
citySelect.value.open() // Vue3 无效
this.$refs.citySelect.open(); // Vue2 同样无效,试过了
- 一直定位中
- 这个组件的原理就是 :getLocation -> 通过获取到的经纬度->调用服务端逆地址解析->拿到地址
- 由于没有配置云端的amap对应的web服务的key,导致无法解析。
- unicloud-city-select 城市选择组件 按照这个文档说的去配置一下key就可以了,我这里使用的高德地图,到高德申请”Web服务”的key就行了。
module.exports = {
"default": "amap",
"key": {
"amap": "443a7bafsdafsfs8fdcd9a9acf54"
}
}
uniCloud多项目共用同一个服务空间的治理问题
- APP项目(不存放云函数)
- uni-admin项目(存放函数)
- 城市选择、地图解析等
- APP升级中心
uniCloud遇到的问题:未匹配到云函数
A项目关联B项目的云空间,A调用B项目的函数。
Error: 未匹配到云函数[uni-stat-receiver] – DCloud问答
关掉所有HBuilderX,重新启动项目A,这时候会自动启动项目B的函数。
项目A关联项目B,项目A原有的云函数会被隐藏。