
公司项目中有地图展示和定位功能,使用uniapp本以为应该很是容易,应该有现成的空间,去插件市场一找,大部分的插件都是针对H5的,对于app端很少,要不就是需要花钱,这才自己动手实现。
公司过去的项目使用的是百度地图,所以uniapp也就只能使用百度地图了,但是一看官方文档:就是没有百度地图。
在网上搜了一堆,需要使用使用到自定义基座,才能使用,那就只能通过自定义基座看看效果。
1首先去 百度地图开发者平台申请
这里主要是对安卓端进行 *** 作(这里的包名和下边创建基座的包名一致)
2申请后再Hbuilder中manifestjson 中配置
3制作基座
切记:Android包名一定要和百度地图开发平台中的一致
一、定位
1创建获取定位的类funjs
2主类mainjs中引入
3需要的类中使用
输出结果:
二、地图展示
一开始的时候,我总是试图寻找百度地图是不是对uniapp这个平台有单独的API,但是很可惜没有。在百度地图引入后,直接调用uniapp给的map组件,可以展示出地图,但是很多的属性不支持,也找不到相关的处理文档。没办法,上网查找,大部分的处理方案是通过动态引入百度地图JavaScript API GL框架,进行展示。
这个地方,我们需要在百度地图开发者平台申请web前端的开发的key
1百度地图开发者控制平台,创建web端应用
2创建动态引入百度地图的script类mapjs
3使用(这里使用到了renderjs),切记如果需要开文档,查看JavaScript API GL相关文档
4运行效果
这样地图的定位和地图展示基本就完成了,如果需要更加复杂的功能只能去查看百度的官方文档
原因:
1、uni-app不支持页面刷新时重新获取code,所以可能会出现刷新之后code获取失败的情况。
2、需要在uni-app的跳转链接中添加code参数,让uni-app在页面跳转的时候带上code信息,刷新页面时不会重新获取code。
3、如果想要在uni-app中重新获取code,可以使用uninavigateTo来进行页面跳转,这时会默认携带code信息。
scroll-top、scroll-left 设置滚动条竖向或横向位置:
以scroll-top 举例:
<scroll-view scroll-y="true" :scroll-top="scrollTop" class='nav-box' @scroll="scroll"> </scroll-view>
<view @tap="goTop">点击回到顶部</view>
<script>
export default{
data(){
return{
scrollTop:0,
old: { scrollTop: 0 },
}
},
methods:{
scroll : function(e) {
thisoldscrollTop = edetailscrollTop
},
goTop : function(){
thisscrollTop = thisoldscrollTop
this$nextTick(function(){
thisscrollTop=0;
});
}
}
}
</script>
官方示例方法 : scroll事件监听会监听滚动条处于的位置(edetail),将滚动条滚动的位置保存在oldscrollTop,当点击 回到顶部时, 将oldscrollTop赋值给scrollTop,视图会发生重新渲染,当视图渲染结束,接着触发 this$nextTick,scrollTop被赋值为0,视图会再次渲染并回到顶部
如下直接赋值也可达到同样效果
scroll : function(e) {
thisscrollTop = edetailscrollTop
},
goTop : function(){
thisscrollTop = 0
}
说一下我考虑的条件输入:
首先是用户每输入一个值都需要摁下回车进行确认核查,不符合数据的用alert()方法d出一个警告框提示用户进行修改。
年份这里要考虑的是4位数的年份,不能是特殊字符,但是负数这个条件我没考虑到。
月份这里考虑的是2位数的月份,采取02月这种表达,也不能是特殊字符,还有月份范围是01-到12月。
天数、小时分钟秒这里都是同上,考虑范围、不能是特殊字符,采取两位数表达。
然后我说让用户摁下秒数这个输入框的时候,才显示这个界面。
用到了时间函数
参考文章: >
1首先需要在manifestorjson里,将Maps(地图)的勾打上。如图
2在APP SDK配置里设置,将高德定位地图勾打上,再填上地图应用KEY。如图
3第二步需要到高德地图上注册开发者,申请权限。
如果是测试用,则安全码那可以直接填HBUILDERX提供的码:BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58。Package就是打包时名称。按“获取KEY”后,即可获取KEY值,将其填入第二步即可。
在Android开发中,Context是一个非常重要的概念。它表示Android应用程序或组件的当前状态和信息。当您开发Uniapp插件时,可以使用Context来访问应用程序资源,如字符串、布局、等等。
在Uniapp插件开发中,您可以通过以下方式获取Context:
1 在Activity或Service中获取:如果您的插件需要在Activity或Service中执行 *** 作,则可以使用getContext()方法来获取当前的Context。
2 在Application中获取:如果您的插件需要在Application层面执行 *** 作,则可以使用getApplicationContext()方法来获取当前的Context。
3 从传入的参数中获取:有些情况下,您可能需要从外部传入一个Context,比如在创建Dialog时。这时候,您可以从传入的参数中获取Context。
请注意,在使用Context时需要避免内存泄漏和空指针等问题。例如,在创建Dialog时,应该使用Activity的Context而不是Application的Context,否则可能会导致内存泄漏。同时,也需要注意及时释放Context以避免空指针异常。
分析 :app端无法解析业务数据data;但是响应头与h5端相比多了3个android相关的参数,即 X-Android-Sent-Millis 、 X-Android-Response-Source 和 X-Android-Received-Millis 。
解决 :修改该uni-app项目的配置文件mainfestjson,选择App常用其他设置,自定义组件模式默认是开启的, 关闭自定义组件模式 并 重启开发工具 即解决app端无法解析业务数据的问题,此时app端获取到的响应头的参数与h5端是一样的。
(1) 请求服务器A中的接口a(app端和h5端都能请求到业务数据)
(2) 请求服务器B中的接口b
问题 :app端请求的业务数据data一直为“200 OK”,但h5端可以请求到业务数据。
分析 :应该是响应头的问题。
总结 :h5端正常解析,但是app端数据解析异常,可能原因是不同语言对header解析不一样(有些语言是弱语言,兼容性没有那个大)。
以上就是关于uniapp(安卓端)百度地图的使用全部的内容,包括:uniapp(安卓端)百度地图的使用、uniapp刷新页面不会重新获取code、uniapp scroll-view属性scroll-top或scroll-left的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)