QQ卡片消息xml基本介绍

一、基本XML语言

1.1.version 版本
1.2.encoding 编码
2.msg 消息
2.1.serviceID 服务ID
2.2.brief 简介
2.3.flag标志
2.4.templateID 模板ID
3.item 项目
3.1.layout 布局
3.2.mode 模式3.3.bg 背景颜色
4.picture 图片
4.1.cover 覆盖
5.title 标题
5.1.color 颜色
5.2.size 字体大小
5.3.style 方式
6.summary 文本
7.button 按钮
7.1.action 活动
7.2.url 链接
8.1.source 来源
8.2.name 名称
8.3.icon 图标

二、开始写代码

1.XML声明

通常的XML声明长这样:

<?xml version="1.0" encoding="utf-8"?>

它定义
XML 的版本
(1.0) 和所使用的编码
(utf-8)。

但根据实践得出,编码是可以不用定义的。

因此我们可以把代码简化成:

<?xml version="1.0"?>

2.消息类型

消息类型,在XML中叫“msg”,写成标签就是:

<msg>

这里要注意一下,msg里有很多属性。论坛里那些配置的N切什么的,大屏小屏订阅号什么的,都是由一个属性叫做“serviceID”定义的

当serviceID值是“76”时,就是之前很火的透明大屏 安卓/iOS 双兼容框架

然而别高兴的太早,因为1月10号那天透明框架被滥用,(不少人应该在群里见过,那个“网警正在监控本群聊天记录”)导致第二天腾讯把这个框架封杀了。

其他的我不知道,我不喜欢无脑切,不实用。因此也就没去学习。

msg常用属性:(中英对照看上面)

serviceID——这个我只懂76是透明框架,但是被封杀了。常用的数值为6.

<msg serviceID="6">

brief——显示在QQ会话列表,左边是(群)头像,右上角是(群)昵称,右下角显示这个属性的数值。默认为“你有新消息”

<msg brief="[QQ红包]恭喜发财">
<msg brief="机器人有新消息">

flag——长按XML后的标识,当该属性值为1或3时,该XML不可转发。常用数值为3

<msgflag="3">

templateID(这个依然不知道有什么用,目前未发现加不加有什么区别)

Tips:属性的正确写法

给一个属性赋值,需要用到“=”等于号。而数值需要用英文的双引号括起来。例:上面的XML声明<?xml
version="1.0"?>中,version是一个属性。数值是1.0。数值括在双引号里,给属性赋值用等于号。

注意!一定要用英文的双引号!

中文的双引号(新宋体):“”

英文的双引号(新宋体):""

友情小贴士:<msg actionData="AppCmd://OpenContactInfo/?uin=$QQ无空格$" a_actionData="mqqapi://card/show_pslcard?src_type=internal&source=sharecard&version=1&uin=$QQ无空格$" i_actionData="mqqapi://card/show_pslcard?src_type=internal&source=sharecard&version=1&uin=$QQ无空格$">

作用:点击卡片后跳转至回复者QQ资料页面。可自行修改链接。3个属性要一起用,具体啥意思我也不知道。。。复制粘贴就行了3.项目布局

项目布局,在XML中叫“item”,写成代码就是

<item>

同样,item里也有很多属性。

item常用属性:(中英对照看上面)

layout——数值有0,1,2,3,5,6.如果有其他的请指出。目前没发现其他的有什么用

mode——当layout值为2时有用。一般值为1

bg——数值是十六进制颜色代码。(参见十六进制颜色对应表)

<item layout=“0”> 与 <item layout=“1”>

个人认为这俩个完全一样,并且可以省略。

也就是说:

<item layout=“0”> 等于 <item layout=“1”> 等于 <item>

Tips:一个XML绝对拥有以下代码,绝对。具体内容写在<item>和</item>中间。此布局是XML中重要的一部分。虽说不加这个布局也能显示出来,但会很难看。

<?xml version="1.0"?>
<msg>
<item>
</item>
</msg>

为了方便起见,以下所有的布局都可以写在这个布局里面。

但除了布局之外,还有俩个最基本的标签,title和summary

他们是整个XML代码中最基本的,用来显示——字。

<title>呵呵</title>

在这俩个标签中,常见的属性有color(字体颜色)size(字体大小)style(不知道能干嘛)

color可以定义该行代码显示的字的颜色,参见十六进制颜色对应表,上面有链接。新手也可以去看石头的,他的比较简单,但对新手来说够用了。

size可以定义该行代码显示的字的大小,本人预测无限大,只要你的手机够硬。

友情小贴士:清屏代码分享

原理:

size=非常大。

<?xml version="1.0"?><msg>
<item>
<summary size="99999999"> </summary>
</item>
</msg>

注:当title跟summary的color值和size值相同时,这俩个标签的效果是一样的。

<item layout="2">

该布局用法:

<?xml version="1.0"?>
<msg>
<item layout="2">
<picture cover="要显示的图片链接"/>
<title>第一行字</title>
<summary>第二行字</summary>
</item>
</msg>
<item layout="2" mode="1">

layout=“2” mode=“1”与上面的layout=“2”的区别在:

如果仅仅是layout=“2”,那么右边俩行字会换行。

示例:代码封杀太严重。

如果是layout=“2” mode=“1”,则多余的字会用省略号表示。

示例:代码封杀太严重,另外俩点已经更新好了,先发上去,这个等会

这样用的:

<?xml version="1.0"?>
<msg>
<item layout="2" mode="1">
<picture cover="mqqapi://card/show_pslcard?src_type=internal&source=sharecard&version=1&uin=$QQ无空格"/>
<title>$昵称$ </title>
<summary>$当前等级$ ($财富总额$/$还差等级积分$)</summary>
</item>
</msg>
<item layout="3">

该布局专门为按钮而用。

在<item
layout="3"></item>中间,可以在一行中显示无数个按钮(button),且按钮上的文字居中

单行,显示一个按钮,但文字靠左显示,不居中的代码:(注:声明和msg的标签已省略)

<button>示例1</button>

单行,显示一个按钮,且文字居中显示:

<item layout="3">
<button>示例2</button>
</item>

单行,显示二个按钮,且文字居中显示:

<item layout="3">
<button>示例3.1</button>
<button>示例3.2</button>
</item>

单行,显示三个按钮,且文字居中显示:

<item layout="3">
<button>示例4.1</button>
<button>示例4.2</button>
<button>示例4.3</button>
</item>

以此类推,按钮个数无限制。

多行则要用多个item布局:

<item layout="3">
<button>示例5.1</button>
<button>示例5.2</button>
</item>
<item layout="3">
<button>示例5.3</button>
<button>示例5.4</button>
</item>

雨道大神曰:“一个卡片中button用多了容易被封。”

有待证实。

button,顾名思义是按钮,没错,按钮是可以按下的,上次时间紧没更新这个。

使一个按钮能够被按。

XMLstyle属性

style为1 
 加粗

style为2 
 倾斜

style为3 
 加粗倾斜

style为4 
 下划线

style为5 
 单删除线 

文字样式

文字居中:

<item layout="1" bg=""><tr><td size="" color="" align="center">51耗子</td></tr></item>

文字置左:

<item layout="1" bg=""><tr><td size="" color="" align="left">51耗子</td></tr></item>

文字置右:

<item layout="1" bg=""><tr><td size="" color="" align="right">51耗子</td></tr></item>

QQ头像:

圆形头像:mqqapi://card/show_pslcard?src_type=internal&amp;source=sharecard&amp;version=1&amp;uin=QQ号

QQ头像

http://q2.qlogo.cn/headimg_dl?dst_uin=QQ号&amp;spec=100

图片

layout=1正方形图

layout=5长方形图.......

详情请看此展示代码内容。

测试代码:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<msg serviceID="23" templateID="1" action="web" brief="51神韵博客" sourceMsgId="0" url="跳转网址" flag="0" adverSign="0" multiMsgFlag="0">
<item layout="5">
<picture cover="https://www.图片.cn.jpg" w="0" h="0" />
</item><source name="" icon="" action="" appid="-1" />
</msg>

原帖地址:http://bbs.cfxy.me/forum.php?mod=viewthread&tid=32273&highlight=xml

评论 ( 2)
  1. avatar
    沙发
    热搜 2020-03-27 10:42

    文章非常好超喜欢

  2. avatar
    板凳
    今日新鲜事 2020-03-07 15:57

    文章不错支持一下吧