爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • FastWeb帮助主页
  • 学习手册

  • 开发手册

    • 通讯协议

      • 串口

      • ModbusTCP

      • MQTT

      • RestAPI

        • RestAPI控制LED灯(WEB)
        • RestAPI读取温湿度(WEB)
        • RestAPI应用(WEB)
        • RestAPI综合运用1(WEB)
        • RestAPI综合运用2(WEB)
          • 1. 说明
          • 2. 设计明细
          • 3. 程序设计
            • 3.1. 程序初始设置
            • 3.2. 事件设置
          • 4. 运行结果
        • RestAPI综合运用3(WEB)
      • HTTP

    • 交互输出

    • 媒体存取

    • 人工智慧

    • 实例运用

目录

RestAPI综合运用2(WEB)

# FastWeb之RestAPI综合运用2

  • 适用平台:WEB(桌面)

# 1. 说明

  采用RestAPI通讯方式,与第三方工具的API进行整合对接,实现FastWeb上应用的扩展功能。在使用本示例前,请先阅读Shinobi文档 (opens new window)以及Myrtille文档 (opens new window)安装并配置,测试相关的API的可用性。如果访问FastWeb使用的是http,则播放视频以及网页显示的链接也应使用http;如果访问FastWeb使用的是https,则播放视频以及网页显示的链接也应使用https。这样可以避免浏览器因跨域导致资源无法访问。

  通过本范例学习,可以掌握Shinobi与Myrtille API的运用方式,实现JSON的解析。

# 2. 设计明细

  开启FastWeb设计器,分别加入下插图之控件。或者点击左上角的[导入]选择模板文件来打开对应模板。

  本示例与FastWebRestAPI综合运用1相同,故在此仅对新增以及有修改的部分控件进行说明。

  ①:TUniTabSheet组件,控件名称为UniTabSheet01、UniTabSheet02。

  ②:TUgPageControl组件,控件名称为UgPageControl01。

  ③:TUgFlvPlayer组件,控件名称为UgFlvPlayer02。

  ④:TUgFlvPlayer组件,控件名称为UgFlvPlayer03。

  ⑤:TUgComboBox组件,控件名称为ShinobiMonitorList。

  ⑥:TUgFlvPlayer组件,控件名称为UgFlvPlayer04。

  ⑦:TUgFlvPlayer组件,控件名称为UgFlvPlayer05。

  • UgWebRunFrame属性设置

    • Height:设置页面高度=600。
    • Width:设置页面宽度=1280。
    • AlignmentControl:设置对齐的控件模式,设置为uniAlignmentClient。
  • ②UgPageControl01属性设置

      需新增两个页面,分别设置其Caption属性为远程桌面、监控。

    • Align:设置对齐方式alClient。
  • UniTabSheet02属性设置

    • Caption:设置字幕显示内容:监控。
    • Layout:设计布局,设置为vbox。
  • UgContainerPanel03属性设置

      此控件位于监控面板下。

    • Layout:设计布局,设置为hbox。
    • LayoutConfig.Flex:设计布局的占比,设置为1。
    • LayoutConfig.Width:设计布局占用的宽度,设置为100%。
  • UgContainerPanel04属性设置

      此控件位于监控面板下。

    • Layout:设计布局,设置为hbox。
    • LayoutConfig.Flex:设计布局的占比,设置为1。
    • LayoutConfig.Width:设计布局占用的宽度,设置为100%。
  • ③UgFlvPlayer02属性设置

      此控件位于UgContainerPanel03面板下。

    • LayoutConfig.Flex:设计布局的占比,设置为1。
    • LayoutConfig.Height:设计布局占用的宽度,设置为100%。
  • ④UgFlvPlayer03属性设置

      此控件位于UgContainerPanel03面板下。

    • LayoutConfig.Flex:设计布局的占比,设置为1。
    • LayoutConfig.Height:设计布局占用的宽度,设置为100%。
  • ⑥UgFlvPlayer04属性设置

      此控件位于UgContainerPanel04面板下。

    • LayoutConfig.Flex:设计布局的占比,设置为1。
    • LayoutConfig.Height:设计布局占用的宽度,设置为100%。
  • ⑦UgFlvPlayer05属性设置

      此控件位于UgContainerPanel04面板下。

    • LayoutConfig.Flex:设计布局的占比,设置为1。
    • LayoutConfig.Height:设计布局占用的宽度,设置为100%。
  • restlogin设置

  双击控件,打开API选择器,选择Shinobi登录的API。

  • restMonitor设置

  双击控件,打开API选择器,选择获取监视器的API。

  • restStart设置

  双击控件,打开API选择器,选择开启监控的API。

  • restStop设置

  双击控件,打开API选择器,选择停止监控的API。

  • restMyrtilleLogin设置

  双击控件,打开API选择器,选择Myrtille登录的API。

  • restMyrtilleLogout设置

  双击控件,打开API选择器,选择Myrtille登出的API。

# 3. 程序设计

  点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程式的程序需要引用MessageInfo单元。

# 3.1. 程序初始设置

  设置全局变量。

    //JScript
    var shinobiURL,shinobiAuthToken,shinobiGroupKey,shinobiMonitorID,myrtilleAuthToken;
    
    1
    2
    //PasScript
    Var
      shinobiURL: String;
      shinobiAuthToken: String;
      shinobiGroupKey: String;
      shinobiMonitorID: String;
      myrtilleAuthToken: String;
      ...
      
    Begin
    
    End.
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Make sure to add code blocks to your code group

    # 3.2. 事件设置

    • btnLogin-OnClick事件

      点击按钮以登录。

      //JScript
      function btnLoginOnClick(sender)
      //登录按钮
      {
        restLogin.Send;
        //UGCM.NetHttpPost(,,,,)
      }
      
      
      1
      2
      3
      4
      5
      6
      7
      8
      //PasScript
      procedure btnLoginOnClick(sender: tobject);
      //登录按钮
      Var
        vString: String;
      begin
        restLogin.Send;
      end;
      
      1
      2
      3
      4
      5
      6
      7
      8
      // Make sure to add code blocks to your code group
      • restLogin-ResultData事件

        获取登录信息并解析变量。

        //JScript
        function restLoginOnResultData(sender,aresult)
        //登陆获取token 
        {
          var vJSON = new TJSONObject();
          var vValue = new TJSONValue();
          Try{
            vJSON = TJSONObject(vJSON.ParseJSONValue(aresult,False,False));
            shinobiAuthToken = UGCM.GetJSONString(vJSON,"$user.auth_token");
            shinobiGroupKey = UGCM.GetJSONString(vJSON,"$user.ke");
            mmLog.Lines.Add("auth_token:" + shinobiAuthToken + " group_key:" + shinobiGroupKey);
          }
          Finally{
            vJSON.Free;
            vValue.Free;
          }
        }
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        //PasScript
        procedure restLoginResultData(sender: tobject;aresult: string);
        //登陆获取token 
        var
          vJSON: TJSONObject;
          vValue: TJSONValue;
        begin
          vJSON := TJSONObject.Create;
          vValue := TJSONValue.Create;
          Try
            vJSON := TJSONObject(vJSON.ParseJSONValue(aresult,False,False));
            shinobiAuthToken := UGCM.GetJSONString(vJSON,'$user.auth_token');
            shinobiGroupKey := UGCM.GetJSONString(vJSON,'$user.ke');
            mmLog.Lines.Add('auth_token:' + shinobiAuthToken + ' group_key:' + shinobiGroupKey);
          Finally
            vJSON.Free;
            vValue.Free;
          End;
        end;
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        // Make sure to add code blocks to your code group
        • btnMyrtilleLogin-OnClick事件

          Myrtille登录。

          //JScript
          function btnMyrtilleLoginOnClick(sender)
          //Myrtille登录
          {
            restMyrtilleLogin.Send;
            UgPageControl01.ActivePageIndex = 0;
          }
          
          
          1
          2
          3
          4
          5
          6
          7
          8
          //PasScript
          procedure btnMyrtilleLoginOnClick(sender: tobject);
          //Myrtille登录
          begin
            restMyrtilleLogin.Send;
            UgPageControl01.ActivePageIndex := 0;
          end;
          
          1
          2
          3
          4
          5
          6
          7
          // Make sure to add code blocks to your code group
          • restMyrtilleLogin-ResultData事件

            登录发送相关讯息。

            //JScript
            function restMyrtilleLoginOnResultData(sender,aresult)
            //登录
            {
               myrtilleAuthToken = StringReplace(aresult,""","");
               mmLog.Lines.Add("auth_token:" + myrtilleAuthToken);
               UgURLFrame.URL = "http://{MyrtilleServer}/Myrtille/?__EVENTTARGET=&cid="+ myrtilleAuthToken + "&connect=Connect%21";
            }
            
            1
            2
            3
            4
            5
            6
            7
            8
            //PasScript
            procedure restMyrtilleLoginResultData(sender: tobject;aresult: string);
            //登录
            begin
               myrtilleAuthToken := StringReplace(aresult,'"','');
               mmLog.Lines.Add('auth_token:' + myrtilleAuthToken);
               UgURLFrame.URL := 'http://{MyrtilleServer}/Myrtille/?__EVENTTARGET=&cid='+ myrtilleAuthToken + '&connect=Connect%21';
            end;
            
            1
            2
            3
            4
            5
            6
            7
            8
            // Make sure to add code blocks to your code group
            • btnMyrtilleLogout-OnClick事件

              Myrtille登出按钮点击,发送登出的API请求。

              //JScript
              function btnMtrtilleLogoutOnClick(sender)
              //Myrtille登出
              {
                restMyrtillelogout.Params.Text = Format(restMyrtillelogout.Params.Text,[myrtilleAuthToken]);
                restMyrtillelogout.Send;
              }
              
              1
              2
              3
              4
              5
              6
              7
              //PasScript
              procedure btnMtrtilleLogoutOnClick(sender: tobject);
              //Myrtille登出
              begin
                restMyrtillelogout.Params.Text := Format(restMyrtillelogout.Params.Text,[myrtilleAuthToken]);
                restMyrtillelogout.Send;
              end;
              
              1
              2
              3
              4
              5
              6
              7
              // Make sure to add code blocks to your code group
              • btnMonitor-OnClick事件

                监视器获取点击事件。

                //JScript
                function btnMonitorOnClick(sender)
                //获取监视器
                {
                  restMonitor.URL = Format(restMonitor.Url,[shinobiAuthToken,shinobiGroupKey]);
                  restMonitor.Send;
                }
                
                1
                2
                3
                4
                5
                6
                7
                //PasScript
                procedure btnMonitorOnClick(sender: tobject);
                //获取监视器
                begin
                  restMonitor.URL := Format(restMonitor.Url,[shinobiAuthToken,shinobiGroupKey]);
                  restMonitor.Send;
                end;
                
                1
                2
                3
                4
                5
                6
                7
                // Make sure to add code blocks to your code group
                • restMonitor-ResultData事件

                  获取到的信息进行组合放入复选框中。

                  //JScript
                  //获取结果
                  {
                    var vValueList = new TJSONArray();
                    Try{
                      vValueList = TJSONObject.ParseJSONValue(aresult,False,False) as TJSONArray;
                      var vCount = vValueList.Size;
                      if (vCount == 0) return;
                      for (i = 0; i <= (vCount - 1); i++)
                      {
                        shinobiMonitorID = UGCM.GetJSONString(vValueList,"["+ IntToStr(i) + "].mid"); //获取JSON序列
                        shinobiMonitorList.Items.Add(shinobiMonitorID);
                        mmLog.Lines.Add("monitorid:"+ shinobiMonitorID);
                      }
                        shinobiMonitorList.ItemIndex = 0;
                    }
                    Finally{
                      //vJSON.Free;
                      vValueList.Free;
                    }  
                  }
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  17
                  18
                  19
                  20
                  21
                  //PasScript
                  procedure restMonitorResultData(sender: tobject;aresult: string);
                  //获取结果
                  var
                    vJSON: TJSONObject;
                    vValueList: TJSONArray;
                    vCount: Integer;
                    i: Integer;
                  begin
                    vJSON := TJSONObject.Create;
                    vValueList := TJSONArray.Create;
                    Try
                      vJSON := TJSONObject(vJSON.ParseJSONValue(aresult,False,False));
                      vValueList := TJSONArray(vJSON.ParseJSONValue(aresult,False,False));
                      vCount := vValueList.Size;
                      if vCount = 0 then exit;
                      for i := 0 to (vCount - 1) Do
                      begin 
                        shinobiMonitorID := UGCM.GetJSONString(vJSON,'['+ IntToStr(i) + '].mid'); //获取JSON序列
                        shinobiMonitorList.Items.Add(shinobiMonitorID);
                        mmLog.Lines.Add('monitorid:'+ shinobiMonitorID);
                      End;
                        shinobiMonitorList.ItemIndex := 0;
                    Finally
                      vJSON.Free;
                      vValueList.Free;
                    End;  
                  end;
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  17
                  18
                  19
                  20
                  21
                  22
                  23
                  24
                  25
                  26
                  27
                  28
                  // Make sure to add code blocks to your code group
                  • btnLive-OnClick事件

                    选择视频进行查看。

                    //JScript
                    function btnLiveOnClick(sender)
                    //查看视频
                    {
                      UgPageControl01.ActivePageIndex = 1;
                      shinobiURL = restLogin.Server;
                      shinobiMonitorID = shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer01.SetSource(shinobiURL+ "/"+ shinobiAuthToken + "/flv/" 
                      +shinobiGroupKey + "/"+ shinobiMonitorID + "/s.flv","flv");
                      shinobiMonitorList.ItemIndex = 0;
                      shinobiMonitorID = shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer02.SetSource(shinobiURL+ "/"+ shinobiAuthToken + "/flv/" 
                      +shinobiGroupKey + "/"+ shinobiMonitorID + "/s.flv","flv");
                      shinobiMonitorList.ItemIndex = 0;
                      shinobiMonitorID = shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer03.SetSource(shinobiURL+ "/"+ shinobiAuthToken + "/flv/" 
                      +shinobiGroupKey + "/"+ shinobiMonitorID + "/s.flv","flv");
                      shinobiMonitorList.ItemIndex = 0;
                      shinobiMonitorID = shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer04.SetSource(shinobiURL+ "/"+ shinobiAuthToken + "/flv/" 
                      +shinobiGroupKey + "/"+ shinobiMonitorID + "/s.flv","flv");
                      shinobiMonitorList.ItemIndex = 0;
                      shinobiMonitorID = shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer05.SetSource(shinobiURL+ "/"+ shinobiAuthToken + "/flv/" 
                      +shinobiGroupKey + "/"+ shinobiMonitorID + "/s.flv","flv");
                    }
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    17
                    18
                    19
                    20
                    21
                    22
                    23
                    24
                    25
                    26
                    //PasScript
                    procedure btnLiveOnClick(sender: tobject);
                    //查看视频
                    Var
                      shinobiURL:String;
                    begin
                      UgPageControl01.ActivePageIndex := 1;
                      shinobiURL := restLogin.Server;
                      shinobiMonitorID := shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer01.SetSource(shinobiURL+ '/'+ shinobiAuthToken + '/flv/' 
                      +shinobiGroupKey + '/'+ shinobiMonitorID + '/s.flv','flv');
                      shinobiMonitorList.ItemIndex := 0;
                      shinobiMonitorID := shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer02.SetSource(shinobiURL+ '/'+ shinobiAuthToken + '/flv/' 
                      +shinobiGroupKey + '/'+ shinobiMonitorID + '/s.flv','flv');
                      shinobiMonitorList.ItemIndex := 0;
                      shinobiMonitorID := shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer03.SetSource(shinobiURL+ '/'+ shinobiAuthToken + '/flv/' 
                      +shinobiGroupKey + '/'+ shinobiMonitorID + '/s.flv','flv');
                      shinobiMonitorList.ItemIndex := 0;
                      shinobiMonitorID := shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer04.SetSource(shinobiURL+ '/'+ shinobiAuthToken + '/flv/' 
                      +shinobiGroupKey + '/'+ shinobiMonitorID + '/s.flv','flv');
                      shinobiMonitorList.ItemIndex := 0;
                      shinobiMonitorID := shinobiMonitorList.Items.Strings[shinobiMonitorList.ItemIndex];
                      UgFlvPlayer05.SetSource(shinobiURL+ '/'+ shinobiAuthToken + '/flv/' 
                      +shinobiGroupKey + '/'+ shinobiMonitorID + '/s.flv','flv');
                    end;
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    17
                    18
                    19
                    20
                    21
                    22
                    23
                    24
                    25
                    26
                    27
                    28
                    // Make sure to add code blocks to your code group
                    • btnStart-OnClick事件

                      开启监控的按钮点击事件。

                      //JScript
                      function btnStartOnClick(sender)
                      //开启监控
                      {
                        restStart.Url = Format(restStart.Url,[shinobiAuthToken,shinobiGroupKey,shinobiMonitorID]);
                        restStart.Send;
                      }
                      
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      //PasScript
                      procedure btnStartOnClick(sender: tobject);
                      //开启监控
                      begin
                        restStart.Url := Format(restStart.Url,[shinobiAuthToken,shinobiGroupKey,shinobiMonitorID]);
                        restStart.Send;
                      end;
                      
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      // Make sure to add code blocks to your code group
                      • restStart-ResultData事件

                        获取结果信息并显示。

                        //JScript
                        function restStartOnResultData(sender,aresult)
                        //开启结果
                        {
                          var vJSON =  new TJSONObject();
                          var vValue = new TJSONValue();
                          Try{
                            vValue = vJSON.ParseJSONValue(aresult,False,False);
                            var vString = TJSONObject(vValue).GetValue("ok").Value;
                            mmLog.Lines.Add(aresult);
                            if (vString == "true"){ 
                              ShowSweetAlert(atSuccess,UGMM.LT("提示"),UGMM.LT("开启成功!"));
                            }
                            else{
                              ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("开启失败!"));
                            }
                          }
                          Finally{
                            vJSON.Free;
                            vValue.Free;
                          }   
                        }
                        
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        8
                        9
                        10
                        11
                        12
                        13
                        14
                        15
                        16
                        17
                        18
                        19
                        20
                        21
                        22
                        //PasScript
                        procedure restStartResultData(sender: tobject;aresult: string);
                        //开启结果
                        var
                          vJSON: TJSONObject;
                          vValue: TJSONValue;
                          vString: String;
                        begin
                          vJSON := TJSONObject.Create;
                          vValue := TJSONValue.Create;
                          Try
                            vValue := vJSON.ParseJSONValue(aresult,False,False);
                            vString := TJSONObject(vValue).GetValue('ok').Value;
                            mmLog.Lines.Add(aresult);
                            if vString = 'true' then 
                              ShowSweetAlert(atSuccess,'提示','开启成功!')
                            else
                              ShowSweetAlert(atError,'提示','开启失败!');
                          Finally
                            vJSON.Free;
                            vValue.Free;
                          End;   
                        end;
                        
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        8
                        9
                        10
                        11
                        12
                        13
                        14
                        15
                        16
                        17
                        18
                        19
                        20
                        21
                        22
                        23
                        // Make sure to add code blocks to your code group
                        • btnStop-OnClick事件

                          关闭监控的按钮点击事件。

                          //JScript
                          function btnStopOnClick(sender)
                          //停止开启
                          {
                            restStop.Url = Format(restStop.Url,[shinobiAuthToken,shinobiGroupKey,shinobiMonitorID]);
                            restStop.Send;
                          }
                          
                          1
                          2
                          3
                          4
                          5
                          6
                          7
                          //PasScript
                          procedure btnStopOnClick(sender: tobject);
                          //停止开启
                          begin
                            restStop.Url := Format(restStop.Url,[shinobiAuthToken,shinobiGroupKey,shinobiMonitorID]);
                            restStop.Send;
                          end;
                          
                          1
                          2
                          3
                          4
                          5
                          6
                          7
                          // Make sure to add code blocks to your code group
                          • restStop-ResultData事件

                            获取结果信息并显示。

                            //JScript
                            function restStopOnResultData(sender,aresult)
                            //关闭结果
                            {
                              var vJSON = new TJSONObject();
                              var vValue = new TJSONValue();
                              Try{
                                vValue = vJSON.ParseJSONValue(aresult,False,False);
                                var vString = TJSONObject(vValue).GetValue("ok").Value;
                                mmLog.Lines.Add(aresult);
                                if (vString == "true"){ 
                                  ShowSweetAlert(atSuccess,UGMM.LT("提示"),UGMM.LT("关闭成功!"));
                                }
                                else{
                                  ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("关闭失败!"));
                                }
                              Finally
                              {
                                vJSON.Free;
                                vValue.Free;
                              }   
                            }
                            
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            17
                            18
                            19
                            20
                            21
                            22
                            //PasScript
                            procedure restStopResultData(sender: tobject;aresult: string);
                            //关闭结果
                            var
                              vJSON: TJSONObject;
                              vValue: TJSONValue;
                              vString: String;
                            begin
                              vJSON := TJSONObject.Create;
                              vValue := TJSONValue.Create;
                              Try
                                vValue := vJSON.ParseJSONValue(aresult,False,False);
                                vString := TJSONObject(vValue).GetValue('ok').Value;
                                mmLog.Lines.Add(aresult);
                                if vString = 'true' then 
                                  ShowSweetAlert(atSuccess,'提示','关闭成功!')
                                else
                                  ShowSweetAlert(atError,'提示','关闭失败!');
                              Finally
                                vJSON.Free;
                                vValue.Free;
                              End;   
                            end;
                            
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            17
                            18
                            19
                            20
                            21
                            22
                            23
                            // Make sure to add code blocks to your code group

                            # 4. 运行结果

                              使用鼠标在FastWeb菜单,点击[保存至数据库]按钮,将其保存至数据库,点击[调试运行]确认能够正常打开。

                              首先点击1.登录按钮获取token,然后点击2.监视器获取监视器信息,点击查看视频查看视频直播信息。

                              底部的Myrtille登录点击时打开远程桌面连接。

                            RestAPI综合运用1(WEB)
                            RestAPI综合运用3(WEB)

                            ← RestAPI综合运用1(WEB) RestAPI综合运用3(WEB)→

                            Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
                            • 跟随系统
                            • 浅色模式
                            • 深色模式
                            • 阅读模式