Get ( 安装的 FM 插件为 JSON )

返回具有已安装插件属性的 JSON 对象。

格式 

Get ( 安装的 FM 插件为 JSON )

参数 

返回的数据类型 

文本

原始版本 

19.2.2

说明 

此函数与 Get (安装的 FM 插件)函数,唯一的区别在于它是一个 JSON 对象,还包含其他信息。

在下面返回的 JSON 对象示例中,plugins 数组中有两个安装的插件。

复制
{
    "APIVers":2,
    "environment":
    {
        "architecture":"arm64",
        "platform":1,
        "version":"11.3"
    },
    "plugins":
    [
        {
            "name":"MyPlugin1",
            "id":"XM32",
            "version":"1.0",
            "state":"Enabled",
            "filepath":"filemac:/HD/Users/user1/Library/Application Support/FileMaker/Extensions/MyPlugin1.fmplugin/",
            "description":"This is a sample FileMaker plug-in."
        },
        {
            "name":"MyPlugin2",
            "id":"BO3B",
            "version":"1.1.6x3422",
            "state":"Disabled",
            "filepath":"filemac:/HD/Users/user1/Library/Application Support/FileMaker/FileMaker Pro/19.0/Extensions/MyPlugin2.fmplugin/",
            "description":"This is another FileMaker plug-in."
        }
    ]
}

下表说明返回的 JSON 对象中的元素。

JSON 元素

说明

APIVers

此 JSON 对象的结构版本的数值。如果此 JSON 对象的结构在后续版本中有更改,此版本号也会更改。

版本 2:添加了 environment

environment

描述插件所在系统的对象。即使当前未安装插件也会返回。包括以下键:

plugins

包含每个已安装插件的对象的数组。如果未安装插件,则值为 null。

name

插件的名称

id

插件的四字符 ID(请参阅关于控制文件间的插件访问

version

显示为字符串的插件版本

state

插件当前是否在“首选项”中启用并加载:

  • Enabled – 已启用,可以加载
  • Disabled – 已禁用,无法加载
  • Ignored – 加载失败,可能是由于软件不兼容
filepath

FileMaker 格式的插件文件路径(请参阅创建文件路径

description

插件的说明

名称、版本和说明是插件开发商在插件的资源文件 (Windows) 或 info.plist 文件 (macOS) 中提供的值。

示例 1 

返回已安装的插件数。

复制
ValueCount ( JSONListKeys ( Get ( InstalledFMPluginsAsJSON ) ; "plugins" ) )

示例 2 

返回插件的版本号,包含 $$id 变量指定的 ID。对于返回上述示例 JSON 对象的系统,以下计算将返回 1.0(如果 $$id 为 "XM32")。

复制
While ( 
    [ 
    plugin_json = Get ( InstalledFMPluginsAsJSON ) ;
    total = ValueCount ( JSONListKeys ( plugin_json ; "plugins" ) ) ;
    index = 0 ;
    version = "" 
    ] ; 

    index < total ; 

    [ 
    version = If ( JSONGetElement ( plugin_json ; "plugins[" & index & "].id" ) = $$id ; 
        JSONGetElement ( plugin_json ; "plugins[" & index & "].version" ) ; "" ) ;
    index = If ( version = "" ; index + 1 ; total )
    ] ; 

    version 
)

示例 3 

请参阅示例 2中的安装插件文件