微搭使用笔记(六) 通过源码组件实现小程序端地图

这篇具有很好参考价值的文章主要介绍了微搭使用笔记(六) 通过源码组件实现小程序端地图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

微搭官方提供了大量常用组件,但由于微搭本身也是在不断地完善过程中,有些组件还是没有提供,但同时微搭允许用户自定义组件并在应用中使用。

实际场景是这样的,我们需要一个地图页面在上面展示已知设备的信息和位置,这个需求需要用到地图和地图上的markers,而目前微搭提供的地图组件只是表单中的地图定位,并不能在上面覆盖markers及配置。

本文我们结合这个场景完成小程序中自定义组件的流程和使用过程,作为记录的同时也希望能对大家使用微搭有所帮助。

需要注意的是,微搭中的自定义组件或者叫源码组件分为web侧和小程序侧,二者对应组件需要单独开发,官方并没有做两端的适配。

本文我们演示的是小程序源码组件的开发和使用过程。

环境准备

1. 腾讯云账号、开通微搭

2. 本地开发环境准备

​ 主要是安装node和tcb客户端,可以参考微搭使用笔记(一) win10环境下搭建微搭本地开发环境_泽济天下的博客-CSDN博客

3. 控制台新建组件库

在控制台点击组件库-新建组件库,完成组件库的创建。
地图标注源码,微信小程序,微搭,源码组件,自定义组件
地图标注源码,微信小程序,微搭,源码组件,自定义组件

TIPS:

远程组件库和本地组件库是通过组件库标识来关联的,所以本地组件库的文件夹的名称需要和控制台的组件库标识一致。

安装组件开发模板

1. 命令行执行tcb login

执行完成后会在浏览器打开到腾讯云的登录页面,扫码登录后会进入到授权页面,点击确认授权即可
地图标注源码,微信小程序,微搭,源码组件,自定义组件
点击确认授权后会在下方列表中添加一条记录。
地图标注源码,微信小程序,微搭,源码组件,自定义组件

2. 新建本地组件库

进入本地开发目录,执行tcb lowcode create [你的控制台组件库标识],如tcb lowcode create my_custom_component

执行后会让我们选择组件库模板,根据喜好选择即可,我们这里选择vue
地图标注源码,微信小程序,微搭,源码组件,自定义组件
接下来会安装模板及依赖库,但是我这里报错了,可以看到是权限问题。
地图标注源码,微信小程序,微搭,源码组件,自定义组件
一种解决办法是以管理员身份运行命令行,我们尝试下。

切换后,可以删除掉之前新建的那个目录,也可以进入到那个目录下执行npm install安装依赖。
地图标注源码,微信小程序,微搭,源码组件,自定义组件
安装完成后,我们可以通过喜欢的开发工具打开对于目录,看下目录结构。
地图标注源码,微信小程序,微搭,源码组件,自定义组件

3. 主要目录说明

.
├── .storybook              # storybook 配置目录
└── src
   ├── test                # 测试目录
   ├── configs             # 组件类型申明目录
   │  ├── actions         # 组件库方法类型申明
   │  └── components      # 组件目录类型申明
   ├── mp                  # 小程序组件
   │  ├── actions         # 小程序组件方法实现
   │  └── components      # 小程序组件实现
   ├── stories             # 组件 story / 测试
   └── web                 # web 组件
       ├── actions         # web 组件方法实现
       └── components      # web 组件实现

模板中提供了Button和Counter两个示例组件供参考。

小程序源码组件开发

通过上面主要目录可以看到,小程序相关源码组件代码主要是在src/mp中,配置文件在configs目录中。

1. 组件定义

在src/mp/components目录下新建map目录,map目录下添加四个文件,index.js, index.json, index.wxml, index.wxss

熟悉小程序开发的人都知道这个目录的内容和小程序原生开发的结构一模一样,没错,就是这样的。

看下具体内容:

index.wxml

<map 
  style="{{style}}" 
  latitude="{{latitude}}" 
  longitude="{{longitude}}"
  markers="{{markers}}"
  scale="{{scale}}">  
</map>

index.js

Component({
  properties: {
    style: {
      type: String,
      value: '',
    },
    latitude: {
      type: Number,
      value: '30.51667',
    },
    longitude: {
      type: Number,
      value: '114.31667',
    },
    markers: {
      type: Array,
      value: [],
    },
    scale: {
      type: Number,
      value: 9,
    },
  },
  data: {},
  methods: {
    
  },
});

index.json

{
  "component": true
}

index.wxss目前是空的,并没有添加自定义的样式。

关于以上代码的几点说明:

  1. 目录结构和小程序原生开发一模一样
  • wxml文件用于页面布局
  • js文件用于完成方法调用和变量定义
  • json文件用于配置声明
  • wxss文件用于自定义样式
  1. index.wxml文件使用了原生小程序的map组件,相关属性及api可以参考微信开发文档: map | 微信开放文档 (qq.com)

  2. 示例代码中定义的变量及含义在文档中均有提及,这里再说明下:

    • lantitude和longtitude: 中心点经纬度

    • markers: 覆盖点信息,类型为数组,具体可配置属性如下:
      地图标注源码,微信小程序,微搭,源码组件,自定义组件

2. 配置相关

  • 在src/map/index.json文件中添加map组件的引用
{
  "components": {
    "Button": "components/button/index",
    "Counter": "components/counter/index",
    "Map": "components/map/index"
  },
  "actions": {
    "showToast": "actions/showToast/index"
  }
}
  • 在src/configs/components目录下添加map.json,内容如下
{
  "$schema": "https://comp-public-1303824488.cos.ap-shanghai.myqcloud.com/schema/lcds_component.json",
  "data": {
    "type": "object",
    "properties": {
      "latitude": {
        "title": "经度",
        "default": 30.51667,
        "type": "number"
      },
      "longitude": {
        "title": "纬度",
        "default": 114.31667,
        "type": "number"
      },
      "markers": {
        "title": "标注点",
        "type": "array",
        "default": []
      },
      "scale": {
        "title": "缩放级别",
        "default": 9,
        "type": "number"
      }
    }
  },
  "events": [],
  "meta": {
    "title": "地图",
    "description": "可展示markers的地图组件",
    "icon": "../icons/button.svg",
    "category": "布局",
    "componentOrder": 1
  }
}

这个文件定义了Map组件在编辑器中展示的形式和配置项信息,根据具体情况修改即可(如备注和初始值等属性)。

  • 在src/configs/index.js中添加Map相关内容
import Button from './components/button';
import Counter from './components/counter.json';
import showToast from './actions/showToast';
import Map from './components/map.json';

export const components = {
  Button,
  Counter,
  Map
};

export const actions = {
  showToast,
};

export default {
  components,
  actions,
};

到这里,所有的组件定义和配置工作均已完成。

TIPS:
1. 由于没有涉及到事件相关内容,就没有在actions中添加内容
2. 如果需要支持web端需要在web文件夹再做一次适配web的实现。

3. 组件调试和发布

以上内容完成后,在根目录命令行执行tcb lowcode debug即可进行本地调试,会打开一个本地网页,展示当前目录下所有自定义组件,和正常的编辑器差不多,只是组件都是自定义的组件。

在根目录下执行tcb lowcode publish命令,会提交当前文件夹下的自定义组件到远端,也就是控制台。

需要注意的是tcb lowcode publish 命令并不能真正的完成发布,而是需要执行完成后在微搭控制台组件库页面找到对应组件库点击后面的发布组件库才真正完成发布。

4. 组件使用

发布完成后我们在应用编辑器页面上可以在组件区域看到我们自定义的组件,如果不好找的话可以输入关键字快捷搜索。

需要注意的是在编辑器里面使用的是适配web的组件,如果没有做这部分的话,在网页上看到的是找不到组件一类的提示,不过在小程序里是可以正常展示的。

拖拽该组件到页面对应位置,在右侧可以看到我们定义的配置项,配置完成后可以通过发布到小程序实现效果预览和体验。

部分截图如下:

编辑器组件及配置:
地图标注源码,微信小程序,微搭,源码组件,自定义组件
标注点的配置json如下:

[
   //貘科动物馆
   {
     id: 0,
     iconPath: "https://lowcode-4go779jxdd4a0508-1258463370.tcloudbaseapp.com/resources/2022-09/lowcode-813417",
     latitude: 39.941386,
     longitude: 116.336655,
     width: 15,  //图片显示宽度
     height: 15,//图片显示高度
     title:'貘科动物馆',
   },
   //犀鸟馆
   {
     id: 1,
     iconPath: "https://lowcode-4go779jxdd4a0508-1258463370.tcloudbaseapp.com/resources/2022-09/lowcode-813417",
     latitude: 39.940826,
     longitude: 116.335109,
     width: 30,  
     height: 30,
     title:'犀鸟馆'
   },
   //火烈鸟馆
   {
     id: 2,
     iconPath: "https://lowcode-4go779jxdd4a0508-1258463370.tcloudbaseapp.com/resources/2022-09/lowcode-813417",
     latitude: 39.940578,
     longitude: 116.335977,
     width: 30,
     height: 30,
     title: '火烈鸟馆'
   },
   //鹦鹉馆
   {
     id: 3,
     iconPath: "https://lowcode-4go779jxdd4a0508-1258463370.tcloudbaseapp.com/resources/2022-09/lowcode-813417",
     latitude: 39.941573,
     longitude: 116.335544,
     width: 30,
     height: 30,
     title: '鹦鹉馆'
   }]

小程序端效果展示:
地图标注源码,微信小程序,微搭,源码组件,自定义组件
如上可以在小程序端看到正确的地图和标注点,本文最开始的目标也就实现了。

结语

上文简单展示了一个自定义小程序侧地图组件的过程,整体过程相对来说还是比较清晰简单的,使用起来也比较方便。

针对以上内容有任何疑问欢迎评论区留言或者私信。

创作不易,如果方便的话也欢迎一键三连~~~文章来源地址https://www.toymoban.com/news/detail-760075.html

到了这里,关于微搭使用笔记(六) 通过源码组件实现小程序端地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java项目:基于Springboot+vue实现的付费自习室系统设计与实现(源码+数据库+毕业论文)附含微信小程序端代码

    本项目是一套基于Springboot+vue实现的付费自习室系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值 jdk版本

    2024年03月22日
    浏览(57)
  • 如何使用websocket+node.js实现pc后台与小程序端实时通信

    实现功能:实现pc后台与小程序端互发通信能够实时检测到 1.安装ws依赖 2.创建index.js 3.打开终端,启动服务 这里是手动点击连接按钮,发起的websocket连接,可自行更改到其他合适的地方连接websocket 1.创建两个按钮,连接按钮,发送按钮 2.定义事件,连接ws

    2024年02月03日
    浏览(48)
  • 智慧校园:校务助手微信小程序端源码

    校园校务助手-智慧校园教师移动端   它包括哪些功能呢?我来介绍一下。 智慧校园教师端微信小程序是基于原生开发 教师端登录界面   ①.设备管理、通知管理、图片管理、班级考勤 ②.综合素质评价、视频管理、请假管理、成绩管理 教师端功能展示   ③.个人信息、进离

    2024年02月09日
    浏览(43)
  • uniapp 小程序端使用uni-popup组件时,页面用了scroll-view滚动组件,uni-popup组件也使用了scroll-view滚动出现组件滚动导致页面也滚动的解决方案

    在 uni-popup上给一个禁止滚动 @touchmove.stop.prevent=\\\"\\\" 和一个样式height: 100vh;    

    2024年02月10日
    浏览(61)
  • 滑动验证组件---设置movable-view组件的x属性在微信小程序端失效的问题

    采用uniapp的movable-view组件实现滑动验证组件。 流程 滑块未滑到最右端时,回弹到原点 滑块滑到最右端时,则显示滑动结束,不可再滑动 频繁设置uniapp的movable-view组件的x属性,在H5端正常,但在微信小程序端则失效。 index.vue woSlider.vue H5端 微信小程序端 官方给出的解释: 由

    2024年02月11日
    浏览(35)
  • 微信支付 H5端 和小程序端 统一下单接口 4个JAVA源码文件代码

    首先来看看官方支付文档的一些相关信息  1、用户在商户侧完成下单,使用微信支付进行支付 2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB 3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通

    2024年02月08日
    浏览(43)
  • 最新开源版ChatGPT搭建源码 含电脑端手机端+小程序端+详细安装部署教程

    分享一个最新开源版ChatGPT搭建源码,源码全开源可二开,含电脑端+手机端+小程序端,对接流量主功能,含详细安装部署教程,支持用户套餐赚取收益等模式设置。    系统功能介绍:系统支持无限SAAS多开,可以无限的给其他人进行多开,完善的二级分销功能,支持一个后台

    2024年02月12日
    浏览(43)
  • 【Java】基于云计算-智慧校园电子班牌系统源码带原生微信小程序端

            智慧校园系统是利用物联网和云计算,强调对教学、科研、校园生活和管理的数据采集、智能处理、为管理者和各个角色按需提供智能化的数据分析、教学、学习的智能化服务环境。它包含“智慧环境、智慧学习、智慧服务、智慧管理”等层面的内容。 智慧校园描绘

    2024年02月15日
    浏览(37)
  • uniapp小程序端使用腾讯地图

    一、获取腾讯地图密钥 1. 找到腾讯地图API 腾讯地图A地址PI 注册并登录后点击 开发文档 选择 微信小程序JavaScript SDK 进入后按照 Hello world! 中的步骤进行 2. 申请密钥 点击上面第一步中的 申请密钥 ,进入我的应用,在创建应用中输入创建的名称和类型 创建成功后点击 添加

    2024年02月16日
    浏览(48)
  • uniapp 实现富文本编辑器【小程序端】

    css资源文件戳该链接:富文本css文件链接 编辑菜单我搞成吸顶效果了,方便手机编辑不用再滑到头部点编辑菜单:css实现元素吸顶效果 ————————————————————————————————————————————

    2024年02月16日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包