---为了方便用户可以拨打电话和复制微信号(下面就要实现这样的两个功能)

注意:在小程序中是没办法直接的添加用户的微信的,所以就只能是复制微信号

(这种东西的话可以直接去做,也可以做成组件,做出组件的好处就是可以在其他地方也可以用的)

下面也演示了如何创建一个组件

在components下面,新建一个callPhone目录,然后在这个目录下面新建一个callPhone的component文件

然后如果要在detail详情页面中使用的话,就可以点开detail.json配置文件

 "usingComponents": {
"call-phone" : "/components/callPhone/callPhone"
}

组件的名字就是key ,value就是组件的绝对地址

配置好了之后,就可以直接在wxml中 通过 <call-phone />来引入了

然后就要对组件进行样式的设置啦
如果是拨打电话的话,就直接用一个图标来表示即可了

会发现:我们在detail.json里面引入了这个组件了,然后在callPhone组件中也设置了样式

<text class="iconfont icondadianhua"></text>

但是在detail页面中并没有显示出来

因为iconfont是定义在外面的,其实也是全局的,如果要在组件里面引用的话,还要进行额外的设置才行的,查看微信开发文档

https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html

Component({
options: {
styleIsolation: 'isolated'
}
})

styleIsolation 选项从基础库版本 2.6.5 开始支持。它支持以下取值:

  • isolated 表示启用样式隔离,在自定义组件内外,使用 class 指定的样式将不会相互影响(一般情况下的默认值);
  • apply-shared 表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面;
  • shared 表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件。(这个选项在插件中不可用。)

其中:apply-shared就是我们想要的了(选择它之后,咱们就可以把外部的样式传入进来了)

之后就是要进行父子通信了,要把电话号码传入到这个组件内部去,可以写一个自定义属性来实现

 <call-phone phoneNumber="{{ detail.phoneNumber }}" />

通过这个就可以,使得不同的用户可以传不同的电话号码给这个组件了

然后把电话号码传过去之后

在组件中的  properties 是用来接受传过来的参数的,然后还要指定数据的类型

再把调用的方法写到methods里面

对组件中的wxml 添加一个点击事件 handleCallPhone 方法,然后在methond里面定义即可了

之后就要看微信提高给我们拨打电话的接口API了

在开放文档里面

https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html

wx.makePhoneCall({
phoneNumber: '1340000' //仅为示例,并非真实的电话号码
})
  methods: {
handleCallPhone(){
wx.makePhoneCall({
phoneNumber: this.data.phoneNumber
})
}
}

以上就是对 拨打电话 这个组件的设计了

下面,就是复制微信号组件的设计了

同理的和 打电话一样设置,组件 然后到detail.json文件里面把组件引入,在detail.wxml中使用,记得自定义一个属性把微信号传到组件中去

然后在组件的js文件中properties定义传过来的参数的数据类型,设置样式共享,然后在组件的wxml中设置我们在iconfont中的复制图标,即可看到如下效果了

然后就是给组件的wxml加一个点击事件,再到js文件里面定义这个方法即可了

这个方法就是微信提供的 剪贴板

  

 handleCopyText(){
wx.setClipboardData({
data:this.data.copyText,
success(res){
wx.getClipboardData({
success(res){
wx.showToast({
title: '复制成功',
})
}
})
}
});
}

Day10-微信小程序实战-交友小程序-自定义callPhone 和copyText组件的更多相关文章

  1. Day7-微信小程序实战-交友小程序首页UI

    一般都是直接用微信提供的组件来进行布局的 在小程序中最好少用id,尽量用class 轮播图就是直接用swiper 直接在微信开发者文档里面->组件->swiper->示例代码 < ...

  2. Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现

    在这之前已经把编辑个人的所有信息的功能已经完成了 之后先对首页的列表搞动态的,之前都是写死的静态 1.之前都是把好友写死的,现在就在js里面定义一个数组,用循环来动态的绑定 在onReady中定义,取 ...

  3. Day10-微信小程序实战-交友小程序-添加好友功能之创建并更新message信息

    1.首先要在 添加好友 这个按钮上添加一个事件,也就是在detail.wxml的添加好友这个按钮的哪里,添加一个点击事件 handleAddFriend 并且添加好友还要考虑,现在是已登陆状态还是未登 ...

  4. Day11-微信小程序实战-交友小程序-附近的人(地图的形式)及位置获取

    回顾:在下面的tabbar中,我们已经实现了首页 消息 我的,就剩下”附近“页面了 ”附近“的页面主要是用地图来进行展示的(可以显示我的位置,也可以显示周围附近的人的位置) (在地图里面点击它的头像的 ...

  5. Day12-微信小程序实战-交友小程序-优化“附近的人”页面与serach组件的布局和样式以及搜索历史记录和本地缓存*内附代码)

    回顾/:我们已经实现了显示附近的人的功能了,可以多个人看到附近的人页面了 但是还是要进行优化有几个问题:1.我们用户选择了其他的自定义头像之后,在首页可以看到头像的变化,但是在附近的人中头像会变成报错 ...

  6. Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端

    要搞一个小型的cms内容发布系统 因为小程序上线之后,直接对数据库进行操作的话,慧出问题的,所以一般都会做一个管理系统,让工作人员通过这个管理系统来对这个数据库进行增删改查 微信小程序其实给我们提供了 ...

  7. Day10-微信小程序实战-交友小程序-创建friendList字段实现好友关系(添加好友功能)--内附代码

    回顾:之前我们进行了删除的功能,以及对message消息的增删,下面实现添加好友的功能 我们先在数据库中,在message这个字段的list里面,添加上测试号的id,就是模拟这个两个测试号要加我主号的 ...

  8. Day10-微信小程序实战-交友小程序-实现删除好友信息与子父组件间通信

    回顾:上一次已经把消息的布局以及样式做好了 效果图: 在removeList.js文件中,messageId就是发起这个消息的用户了 先查看一下自定义组件的生命周期 https://developer ...

  9. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  —— 微信小程序实战商城 ...

随机推荐

  1. 北京理工大学复试上机--2001A

    1.编写程序,计算下列分段函数 y=f(x)的值. y = -x + 2.5, 0 <= x < 2 y = 2 - 1.5 (x - 3) (x - 3), 2 <= x < ...

  2. Postman+Newman+Git+Jenkins接口自动化测试

    一.Postman  1.创建Collection,在Collection中创建接口请求,如下图所示. 2.编写接口对应的断言Test和Pre-request Script,如下图所示. 3.配置接口 ...

  3. 1. vue文件结构

    1)这是文件规则 <template> <div > </div> </template> <script> Name:"当前的名 ...

  4. Java实现 LeetCode 15 三数之和

    15. 三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以 ...

  5. Java实现花朵数

    一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. 例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水 ...

  6. PAT 旧键盘

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  7. zabbix 监控https URL

    由于生产环境的需要,zabbix 需要监控https的url,但是因为zabbix 是aws ec2 zabbix web绑定了域名,所以没有办法所代理. 有兴趣的可以看官方文档 https://ww ...

  8. CRC循环冗余校验---模2除法解析

    关于模2除法,网上的人说了一大堆规则和原理,感觉很容易把小白绕进去,下面我只说怎么计算,不说其中的规则和原理.

  9. Python内置Turtle绘图库方法简介+多案例

    urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的 ...

  10. 【翻译】.NET 5 Preview5发布

    今天,发布了.NET 5.0 Preview5.主要对它进行了一小部分新功能和性能的改进..NET 5.0 Preview 4包含了一些计划和.NET 5.0要交付的内容. 现在,大多数的功能都已经包 ...