社交应用组件

« 返回首页

社交应用组件

目录:

  1. icon 日历日程 指导
  2. icon 联系人选择框
  3. icon 邮箱地址选择框
  4. icon 外部打开 指导
  5. icon 电话拨号器
  6. icon 电话号选择框
  7. icon 信息分享器
  8. icon 短信收发器

icon 日历日程

不可见组件:往手机的系统日历里添加日程(可以设提前几分钟提醒,到时由系统日历弹提醒,App 关着也照样提醒)、 查询某段时间的日程、删除日程;或者打开系统日历的新建日程界面,预先填好内容,由用户自己确认保存。

添加、查询、删除的结果都通过事件返回(先调用方法,再在对应事件里拿结果)。 第一次添加或查询时会向用户申请日历权限;只用「打开新建日程界面」不需要任何权限,应用也不会声明日历权限。

使用指导日历日程:往手机系统日历添加日程(可设提前几分钟提醒)、查询某段时间的日程、删除日程;或打开系统日历的新建日程界面由用户确认保存(不需要权限)查看 →

快速上手:把会议加入日历

when 按钮_加入.Click() {
  日历日程1.AddEvent("组会", 计时器1.MakeInstantFromParts(2026, 10, 8, 9, 0, 0), 计时器1.MakeInstantFromParts(2026, 10, 8, 10, 0, 0), "305 室", "带电脑", 15)
}

when 日历日程1.EventAdded(日程编号) {
  微数据库1.StoreValue("meeting_id", 日程编号)
  对话框1.ShowAlert("已加入日历,开会前 15 分钟提醒")
}

when 按钮_取消.Click() {
  日历日程1.DeleteEvent(微数据库1.GetValue("meeting_id", 0))
}

添加成功后拿到的日程编号要存起来(上面存进了微数据库),以后删除这条日程时要用。

列出未来 7 天的日程

查询结果是一个列表,每一项是一个字典,键有 id、title、start、end、location、description、allDay, 其中 start、end 是毫秒数,用计时器的「由毫秒建时间点」转成时间点再格式化:

when 按钮_查询.Click() {
  日历日程1.GetEvents(计时器1.Now(), 计时器1.AddDays(计时器1.Now(), 7))
}

when 日历日程1.GotEvents(日程列表) {
  var lines = []
  foreach ev in 日程列表 {
    listAdd(lines, join(计时器1.FormatDateTime(计时器1.MakeInstantFromMillis(dictGet(ev, "start", 0)), "MM-dd HH:mm"), "  ", dictGet(ev, "title", "")))
  }
  列表显示框1.Elements = lines
}

不想申请权限?用「打开新建日程界面」,用户在系统日历里看一眼再点保存:

when 按钮_提醒我.Click() {
  日历日程1.OpenEventEditor("交电费", 计时器1.AddDays(计时器1.Now(), 3), 计时器1.AddHours(计时器1.AddDays(计时器1.Now(), 3), 1), "", "支付宝缴费")
}

事件

日程已添加(日程编号)
添加日程成功后触发。日程编号在删除时要用。
日程已删除(日程编号,是否成功)
删除日程完成后触发。是否成功为假表示没有这条日程(可能已被用户删掉)。
获得日程(日程列表)
查询日程的结果:按开始时刻排序的列表,每项是字典(id、title、start、end、location、description、allDay); 重复日程按每次发生分别列出。

方法

添加日程(标题,开始时刻,结束时刻,地点,描述,提前提醒分钟)
往系统日历添加一条日程。提前提醒分钟为 -1 不提醒,0 在开始时提醒。成功后触发日程已添加。 结束时刻早于开始时刻会报错。手机上没有可写的日历账户时,会新建一个以 App 名命名的本地日历。
删除日程(日程编号)
按日程编号删除日程,完成后触发日程已删除。
查询日程(开始时刻,结束时刻)
查询这段时间内的日程,结果在获得日程事件里。
打开新建日程界面(标题,开始时刻,结束时刻,地点,描述)
打开系统日历的新建日程界面并预先填好内容,由用户确认保存。不需要日历权限;用户是否保存无法得知。

平台说明

  • 安卓:读写手机上所有可见的日历(包括其它应用和账户同步来的日程),写入时优先用主日历。 用到添加、查询、删除积木时,应用清单才会声明日历读写权限。
  • 鸿蒙:普通应用只能读写本应用自己添加的日程,查不到系统里已有的其它日程(读取全部日历是受限权限); 「打开新建日程界面」同样可用,不需要权限。

icon 联系人选择框

单击该按钮后,会显示可供选择的联系人列表。用户做出选择后,以下属性将设置为有关所选联系人的信息:

其他属性影响按钮外观(文本对齐、背景颜色等)以及是否可以单击(启用)。

联系人选择框组件可能不适用于所有手机。例如,在3.0之前的Android系统上,它无法选择电话号码,并且电子邮件地址列表将仅包含一封电子邮件。

属性

背景颜色
设置联系人选择框的背景颜色,使用ARGB数值表示,如果设置了图像属性,则不能显示背景颜色直到删除图像属性为止。
联系人姓名
返回所选联系人的全名,如果名称不可用,则返回空字符串。
联系人URI
返回指定联系人在设备上的位置的 URI。
邮箱地址
返回所选联系人的主电子邮件地址,如果电子邮件地址不可用,则返回空字符串。
邮箱地址列表
返回与所选联系人关联的电子邮件地址列表。
启用
设置联系人选择框是否可以被激活和点击。
粗体
设置联系人选择框的显示字体是否是粗体。(注:有些字体不支持粗体)。
斜体
设置联系人选择框的显示字体是否是斜体。(注:有些字体不支持斜体)。
字体大小
设置联系人选择框的字体大小,以像素px为单位。
字体
设置联系人选择框的字体,目前支持的字体有:default, serif, sans serif, 和 monospace。

要使用自定义字体,请将 .ttf 字体文件上传并选中它。选「Material 图标字体」后,文字里的图标英文名(如 home)显示成图标、其余文字照常,见图标字体。

高度
设置联系人选择框的垂直高度,以像素px为单位。
高度百分比
设置联系人选择框的垂直高度相对于整个屏幕高度的百分比。
图像
设置联系人选择框图像的路径,如果同时设置了图像和背景颜色,则仅图像可见。
电话号码
返回与所选联系人关联的主要电话号码,如果没有与该联系人关联的电话号码,则返回空字符串。
电话号码列表
返回与所选联系人关联的电话号码列表。
图片
返回所选联系人的图片 URI,可用于检索联系人的照片和其他字段。
形状
设置联系人选择框的形状,此属性的有效值为:

0(默认)

1 (圆形)

2(矩形)

3(椭圆形)。

如果设置了图像,则形状将不可见。

显示反馈
设置联系人选择框指定 图像后被按压是否显示视觉反馈。
文本
设置联系人选择框的显示文本。
文本对齐
设置联系人选择框文本的对齐方式,有效值有:

0(正常;例如,如果文本从左到右书写,则左对齐)

1(居中)

2(相反;例如,如果文本从左到右书写,则右对齐)。

文本颜色
设置联系人选择框的文本颜色,使用ARGB数值表示。
可见性
设置联系人选择框是否显示在屏幕上,值是真则联系人选择框显示,假则隐藏。
宽度
设置联系人选择框的水平宽度,以像素px为单位。
宽度百分比
设置联系人选择框的水平宽度相对于屏幕宽度的百分比。

事件

选择完成()
在联系人选择框活动返回其结果且属性已填写后触发该事件。
准备选择()
单击联系人选择框或使用 打开选框 方法显示选择器时触发该事件。

此事件发生在选择器显示之前,可用于在显示选择器之前准备好选择器。

获得焦点()
表示光标移到联系人选择框上方,因此现在可以单击它。
失去焦点()
表示光标已从联系人选择框移开,因此现在无法再单击它。
被按压()
表示联系人选择框已被按下。
被松开()
表示联系人选择框按压已释放。

方法

打开选框()
打开联系人选择框选框,就像用户单击它一样。
查看联系人(URI)
在设备的默认联系人App中打开所选联系人的条目。

icon 邮箱地址选择框

邮箱地址选择框是一种文本框。如果用户开始输入联系人的姓名或电子邮件地址,手机将显示完成输入的选项下拉菜单。如果有很多联系人,则下拉列表可能需要几秒钟的时间才能显示,并且可以在计算匹配时显示中间结果。

文本框的初始内容和用户输入后的内容位于 文本 属性中。如果 文本 属性最初为空,则 提示 属性的内容将隐约显示在文本框中,作为对用户的提示。

其他属性影响文本框的外观(文本对齐、背景颜色等)以及是否可以使用(启用)。

像这样的文本框通常与 按钮 组件一起使用,用户在文本输入完成后单击按钮。

属性

背景颜色
邮箱地址选择框 的背景色,可以在“界面设计”视图或“程序设计”视图中通过颜色名字选择一个颜色,默认背景颜色为:default(阴影 3-D 外观)。
启用
如果设置为真则用户可以在 邮箱地址选择框 中输入文本。
粗体
设置邮箱地址选择框的显示字体是否是粗体。(注:有些字体不支持粗体)。
斜体
设置邮箱地址选择框的显示字体是否是粗体。(注:有些字体不支持粗体)。
字体大小
设置邮箱地址选择框的字体大小,以像素px为单位。
字体
设置邮箱地址选择框的字体,目前支持的字体有:0 (default), 1 (serif), 2 (sansserif), 和 3 (monospace)。

要使用自定义字体,请将 .ttf 字体文件上传并选中它。选「Material 图标字体」后,文字里的图标英文名(如 home)显示成图标、其余文字照常,见图标字体。

高度
设置邮箱地址选择框的垂直高度,以像素px为单位。
高度百分比
设置邮箱地址选择框的垂直高度相对于整个屏幕高度的百分比。
提示
设置邮箱地址选择框的提示信息,如果 文本 为空,则该提示信息在框中显示为浅淡色文本。
文本
邮箱地址选择框中的文本,可以在“界面设计”视图或“程序设计”视图中设置,或由用户输入(除非 启用 属性为 假)。
文本对齐
设置邮箱地址选择框文本的对齐方式,有效值有:

0(正常;例如,如果文本从左到右书写,则左对齐)

1(居中)

2(相反;例如,如果文本从左到右书写,则右对齐)。

文本颜色
设置邮箱地址选择框的文本颜色,使用ARGB数值表示。
可见性
设置邮箱地址选择框是否显示在屏幕上,值是真则邮箱地址选择框显示,假则隐藏。
宽度
设置邮箱地址选择框的水平宽度,以像素px为单位。
宽度百分比
设置邮箱地址选择框的水平宽度相对于屏幕宽度的百分比。

事件

获得焦点()
选择邮箱地址选择框进行输入(例如用户触摸它)时触发该事件。
失去焦点()
当不再选择邮箱地址选择框进行输入时触发该事件,例如用户触摸不同的文本框。

方法

焦点请求()
请求焦点到当前的邮箱地址选择框。

icon 外部打开

不可见组件:让 App 接收别的 App 分享来的内容,以及被链接直接打开。

  • 接收分享:放上本组件,App 就会出现在系统分享菜单里。用户在相册、浏览器、微信等处点「分享」选中本 App, 文字触发收到分享文字时,图片触发收到分享图片时。 与信息分享器方向相反:信息分享器是把内容分享出去,本组件是接收进来。
  • 链接打开(深度链接):设置链接前缀,例如 myshop, 用户点击网页、短信、二维码里的 myshop://goods?id=5 这类链接时会直接打开本 App, 并触发链接打开时,用取链接参数读出参数。

本组件请放在 Screen1 上:分享和链接都会打开 App 的首屏。

使用指导外部打开:让 App 出现在系统分享菜单里,接收别的 App 分享来的文字和图片;设置链接前缀后,点击 前缀://… 形式的链接会直接打开本 App 并带上参数查看 →

快速上手

放一个外部打开、一个标签、一个图像,链接前缀填 myshop:

when 外部打开1.GotSharedText(文本) {
  标签1.Text = join("收到分享:", 文本)
}

when 外部打开1.GotSharedImage(路径) {
  图像1.Picture = 路径
}

when 外部打开1.LinkOpened(URL网址) {
  标签1.Text = join("打开商品:", 外部打开1.GetQueryParameter(URL网址, "id"))
}

测试分享:在相册里选一张图 → 分享 → 选本 App(用伴侣调试时选「AI伴侣」)。 测试链接:编译安装后,在手机浏览器地址栏或备忘录里点 myshop://goods?id=5。

属性

链接前缀
自定义链接前缀,例如 myshop(填 myshop:// 也可以,会自动去掉 ://)。 只能用字母、数字和 + - .,且以字母开头,不区分大小写;留空表示不接收链接。

前缀写进安装包清单,编译后才生效,伴侣里测不了。 请取一个不容易和别的 App 重复的前缀(例如加上自己的名字缩写),重复时系统会让用户选择用哪个 App 打开。

事件

收到分享图片时(路径)
别的 App 分享图片到本 App 时触发。路径 是已复制到本 App 专属目录的图片,可以直接设给图像组件显示,或交给 Web 客户端上传。 一次分享多张图片时只接收第一张。
收到分享文字时(文本)
别的 App 分享文字到本 App 时触发。从浏览器分享网页时,文本 通常是标题加网址。
链接打开时(URL网址)
通过链接前缀开头的链接打开本 App 时触发,网址 为完整链接,例如 myshop://goods?id=5。

方法

取链接参数(URL网址,名称)
从链接里取参数值,例如 myshop://goods?id=5&from=wx 取 id 得到 5;中文等编码字符会自动还原;没有该参数返回空文本。

平台说明

  • 安卓:从别的 App 分享或点链接时,系统会在对方界面之上打开本 App 的首屏,屏幕初始化后触发事件,按返回键回到对方 App(这是安卓分享的通常方式)。用伴侣调试时,分享会回到正在连接编辑器的那个伴侣。
  • 鸿蒙:同样出现在系统分享面板里、支持链接前缀,积木写法完全相同。

icon 电话拨号器

一个不可见的组件,用于拨打 电话号码 属性中指定的号码,该属性可以在界面设计或程序设计视图中设置。

该组件有一个 拨打电话 方法,使程序能够发起电话呼叫。

您还可以使用 直接拨打电话 直接发起电话呼叫,无需用户交互。但是,使用此块的应用程序如果提交到应用商店,可能需要进一步审核,因此建议改用 拨打电话。

通常,此组件与 联系人选择框 组件一起使用,该组件允许用户从手机上存储的联系人中选择联系人,并将 电话号码 属性设置为 联系人选择框.电话号码 属性。

要直接指定电话号码(例如 021-12345678),请将 电话号码 属性设置为具有指定数字的文本(例如“02112345678”)。

属性

电话号码
指定要拨打的电话号码。

事件

来电已接听时(电话号码)
指示来电已接听的事件。 电话号码 是来电电话号码。
通话结束时(状态,电话号码)
指示电话通话已结束的事件。 状态 可以是以下任意一种:
  • 1:来电未接或被拒绝
  • 2:来电已接听并挂断
  • 3:拨出电话已挂断。
开始通话时(状态,电话号码)
指示电话呼叫已开始的事件。 状态 可以是以下任意一个:
  • 1:来电正在响铃
  • 2: 拨出电话

方法

拨打电话()
启动默认拨号器应用程序,设置为使用 电话号码 属性中的号码发起电话呼叫。
直接拨打电话()
使用 电话号码 属性中的号码直接发起电话呼叫,绕过用户交互来启动呼叫。

大多数应用程序应使用 拨打电话,这不需要任何权限。

icon 电话号选择框

单击该按钮后,会显示联系人电话号码列表以供选择。

用户做出选择后,以下属性将设置为有关所选联系人的信息:

其他属性会影响按钮的外观(文本对齐、背景颜色等)以及是否可以点击(启用)。

电话号选择框 组件可能不适用于所有 Android 设备。例如,在3.0之前的Android系统上,返回的电话号码和电子邮件地址列表将为空。

属性

背景颜色
设置电话号选择框的背景颜色,使用ARGB数值表示,如果设置了图像属性,则不能显示背景颜色直到删除图像属性为止。
联系人姓名
返回所选联系人的全名,如果名称不可用,则返回空字符串。
联系人URI
返回指定联系人在设备上的位置的 URI。
邮箱地址
返回所选联系人的主电子邮件地址,如果电子邮件地址不可用,则返回空字符串。
邮箱地址列表
返回与所选联系人关联的电子邮件地址列表。
启用
设置电话号选择框是否可以被激活和点击。
粗体
设置电话号选择框的显示字体是否是粗体。(注:有些字体不支持粗体)。
斜体
设置电话号选择框的显示字体是否是斜体。(注:有些字体不支持斜体)。
字体大小
设置电话号选择框的字体大小,以像素px为单位。
字体
设置电话号选择框的字体,目前支持的字体有:default, serif, sans serif, 和 monospace。

要使用自定义字体,请将 .ttf 字体文件上传并选中它。选「Material 图标字体」后,文字里的图标英文名(如 home)显示成图标、其余文字照常,见图标字体。

高度
设置电话号选择框的垂直高度,以像素px为单位。
高度百分比
设置电话号选择框的垂直高度相对于整个屏幕高度的百分比。
图像
设置电话号选择框图像的路径,如果同时设置了图像和背景颜色,则仅图像可见。
电话号码
返回与所选联系人关联的主要电话号码,如果没有与该联系人关联的电话号码,则返回空字符串。
电话号码列表
返回与所选联系人关联的电话号码列表。
图片
返回所选联系人的图片URI,可用于检索联系人的照片和其他字段。
形状
设置电话号选择框的形状,此属性的有效值为:

0(默认)

1 (圆形)

2(矩形)

3(椭圆形)。

如果设置了图像,则形状将不可见。

显示反馈
设置电话号选择框指定 图像后被按压是否显示视觉反馈。
文本
设置电话号选择框的显示文本。
文本对齐
设置电话号选择框文本的对齐方式,有效值有:

0(正常;例如,如果文本从左到右书写,则左对齐)

1(居中)

2(相反;例如,如果文本从左到右书写,则右对齐)。

文本颜色
设置电话号选择框的文本颜色,使用ARGB数值表示。
可见性
设置电话号选择框是否显示在屏幕上,值是真则电话号选择框显示,假则隐藏。
宽度
设置电话号选择框的水平宽度,以像素px为单位。
宽度百分比
设置电话号选择框的水平宽度相对于屏幕宽度的百分比。

事件

选择完成()
在电话号选择框活动返回其结果且属性已填写后触发该事件。
准备选择()
单击电话号选择框或使用 打开选框 方法显示选择器时触发该事件。

此事件发生在选择器显示之前,可用于在显示选择器之前准备好选择器。

获得焦点()
表示光标移到电话号选择框上方,因此现在可以单击它。
失去焦点()
表示光标已从电话号选择框移开,因此现在无法再单击它。
被按压()
表示电话号选择框已被按下。
被松开()
表示电话号选择框按压已释放。

方法

打开选框()
打开电话号选择框选框,就像用户单击它一样。
查看联系人(URI)
在设备的默认联系人App中打开所选联系人的条目。

icon 信息分享器

信息分享器是一个不可见的组件,可以让App和设备上其他App之间共享数据或文件。 该组件将显示已安装的可处理所提供信息的App列表,并允许用户选择一个App来共享内容,例如邮件App、社交网络App、短信App等。

文件路径可以来自其他组件,例如照相机 或 图像选择框,但也可以指定直接从存储中读取。 请注意:不同的设备处理的存储路径可能不同,例如有一个名为 arrow.gif 的文件在文件夹 Appinventor/assets 中,它的表示方式可能是:

  • "file:///sdcard/Appinventor/assets/arrow.gif"; 或
  • "/storage/Appinventor/assets/arrow.gif"

  • 分享消息 弹出其他App的界面:弹出的是文档(保存文本到文档)、地图(文本作为搜索地址)、蓝牙(传输文本数据)之类的App,没有打印机相关的,打印机App在分享文件的方式才弹出。

分享消息弹出界面

  • 分享文件、分享文件及消息 弹出其他App的界面:分享文件的方式弹出的App几乎非常全面了,包括打印机App(打印分享的文件)。分享文件及消息弹出的和分享文件是一致的。

分享文件(分享文件及消息)弹出界面

属性

无

事件

无

方法

分享文件(文件)
通过显示可用的应用程序列表并允许用户从列表中选择一个,通过手机上安装的任何功能强大的应用程序共享文件。选定的应用程序将打开,向其中传入文件。

分享文件效果预览

分享文件及消息(文件,消息)
通过显示可用的应用程序列表并允许用户从列表中选择一个,通过手机上安装的任何功能强大的应用程序共享文件及消息。选定的应用程序将打开,向其中传入文件及消息。

分享文件及消息效果预览

分享消息(消息)
通过显示可用的应用程序列表并允许用户从列表中选择一个,通过手机上安装的任何功能强大的应用程序共享消息。所选应用程序将打开,并向其中传入消息。

分享消息效果预览

icon 短信收发器

组件下载:cn.fun123.Texting.aix

该组件作为独立的拓展提供,功能一致,导入方法如下:

导入拓展组件后,拖动到主界面区就可以使用了:

当调用组件 发送消息 方法时,将启动设备的首选短信应用程序将属性中指定的短信内容发送到 电话号码 属性中指定的电话中。

也可以通过调用 直接发送消息 直接发送短信,而无需进行交互,但前提是应用程序已请求危险权限。

  • 如果 启用消息接收 属性设为 1,将不会收到消息。
  • 如果 启用消息接收 属性设为 2,消息将仅在应用程序正在运行的时候才被接收。
  • 如果 启用消息接收 属性设置 3,则消息将在应用程序正在运行时被接收;当应用程序未运行时,消息将排队给用户显示通知消息。

当消息到达时,将触发 收到消息 事件,并提供发送号码和消息。

包含此组件的应用程序即使在后台也会收到消息(即当它在屏幕上不可见时),而且只要应用程序安装在手机上了,即使没有运行也能收到消息。

如果应用程序不在手机前台运行,收到短信时手机将在通知栏中显示一条通知。选中通知栏的通知将调出该应用程序,作为应用程序开发人员,你可能希望为用户提供控制 启用消息接收 的能力,这样他们就可以让手机忽略短信。


如果 启用谷歌语音 属性为真,则可以通过 Wifi 使用谷歌语音发送消息。

此选项要求用户拥有谷歌语音帐户并且手机手机上安装了语音应用程序,谷歌语音选项仅适用于支持 Android 2.0 (Eclair) 或更高版本。

不幸的是,由于以下原因,谷歌语音App中引入的变更,导致谷歌语音不再被接收。

要指定电话号码(例如 650-555-1212),请将 电话号码 属性设置为文本字符串与指定的数字(例如,6505551212),可能包含破折号、点和括号(例如,(650)-555-1212)会被忽略,但是不能有空格。

应用程序指定电话号码的另一种方法是包含 电话号选择框 组件,它允许用户从手机中存储的电话号码中选择一个联系人。

属性

启用GoogleVoice
如果此属性为 真,则 发送消息 将尝试使用 Google语音通过 WiFi 发送消息。
消息
调用 发送消息 方法时将发送的消息。

标准 SMS 消息的最大长度通常为 170。对于使用变音符号的语言,该长度可能会更短。

电话号码
调用 发送消息 方法时消息将发送到的号码。
启用消息接收
如果设置为 1(关闭),则不会收到任何消息。

如果设置为 2(前台)或 3(始终),组件将在运行时响应消息。在 2(前台)的情况下,应用程序未运行时收到的消息将被丢弃。在 3(始终)的情况下,应用程序未运行时收到的消息将显示通知。

选择通知将打开应用程序并触发 收到消息 事件。应用程序休眠时收到的消息将排队,因此应用程序唤醒时可能会触发多次 收到消息 事件。作为应用程序开发人员,最好让你的用户控制此属性,这样用户就可以在安装您的应用程序时让手机忽略短信。

事件

收到消息(数值,messageText)
手机收到短信时触发该事件。

使用此块将添加危险权限,如果你的应用提交到应用商店,则需要额外批准。

需要请求的权限名称如下:

权限名:android.permission.READ_SMS。

方法

发送消息()
启动手机的默认短信应用程序,并预先填充消息和电话号码。
直接发送消息()
发送一个文本消息。

使用此块将添加危险权限,如果您的应用提交到应用商店,则需要额外批准。

需要请求的权限名称如下:

权限名:android.permission.SEND_SMS。

文档反馈