Teams Meeting App的 task 彈出框

前幾篇文章我們介紹了 Teams Meeting App 的各種類型和如何從無到有的使用 net6 和 c# 來開發一個 Teams Meeting app,那今天我們開始討論一些 meeting app 的高級互動: task 彈出框。我們先來快速修改一下之前的代碼,看看什么是 task 彈出框。

打開?MainPage.cshtml?文件,加入如下代碼:

<body style="background: white">
...<button onclick="add()">Add</button><script>microsoftTeams.initialize();const add = (status) => {let taskInfo = {title: "Add an item",height: 250,width: 250,url: `https://96ae-49-189-236-3.ngrok.io/TaskDialog`,};microsoftTeams.tasks.startTask(taskInfo, (err, result) => {});};</script>
</body>

要注意的是,上面url的domain是ngrok生成的域名,所以大家自己的代碼肯定和這個不太一樣。我們在頁面上增加了一個按鈕,當用戶點擊按鈕后,我們調用了 teams js sdk的?tasks.startTask()?方法,這個方法可以傳入彈出框的寬度,高度和標題。

然后我們增加一個?TaskDialog.cshtml?文件,內容如下:

@page
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Demo</title><script src="https://statics.teams.cdn.office.net/sdk/v1.10.0/js/MicrosoftTeams.min.js"integrity="sha384-6oUzHUqESdbT3hNPDDZUa/OunUj5SoxuMXNek1Dwe6AmChzqc6EJhjVrJ93DY/Bv"crossorigin="anonymous"></script>
</head>
<body style="background: white"><button onclick="sendResult()">OK</button><script>microsoftTeams.initialize();const sendResult = () => {const taskResult = {};microsoftTeams.tasks.submitTask(taskResult);return true;}</script>
</body>
</html>

在TaskDialog頁面里,我們放了一個按鈕,當用戶點擊按鈕后,我們調用 teams 的?tasks.submitTask()?并且傳入 task 的結果。

然后我們運行并且安裝這個app到一個meeting里,啟動會議,點擊 app 側邊欄的按鈕,可以看到 teams 會彈出我們預先定義好的對話框頁面。

meeting-app-task

這就是 task 彈出框的最最基本版,大家看到這里可能在想,如果和這個彈出框里的一些內容傳遞側邊欄呢?我們這就來試一下。

首先,我們修改一下?TaskDialog.cshtml?文件:

<body style="background: white">Value: <input type="text" id="inputValue" /><button onclick="sendResult()">OK</button><script>microsoftTeams.initialize();const sendResult = () => {const v = document.getElementById('inputValue');const taskResult = {inputValue: v.value};microsoftTeams.tasks.submitTask(taskResult);return true;}</script>
</body>

我們增加了一個輸入框,然后當用戶點擊 OK 按鈕的時候,我們把輸入框的內容讀取出來,保存到?taskResult?變量里,然后把它傳給?microsoftTeams.tasks.submitTask()?函數。

在?MainPage.cshtml?里,我們也把接收到的值顯示在界面上。

<body style="background: white">
...<button onclick="add()">Add</button><div id='result'></div><script>microsoftTeams.initialize();const add = (status) => {let taskInfo = {title: "Add an item",height: 250,width: 250,url: `https://96ae-49-189-236-3.ngrok.io/TaskDialog`,};microsoftTeams.tasks.startTask(taskInfo, (err, result) => {document.getElementById('result').innerText = result.inputValue;});};</script>
</body>

可以看到 callback 函數的第二個參數就是從Task彈出框的返回值。

我們運行一下 app,看一下結果。

meeting-app-task

在彈出框里輸入一些文字,然后點擊 OK 按鈕,就可以看到你輸入的文字內容顯示在了主頁面上。

meeting-app-task

看到這里相信大家腦海里已經有很多應用的場景了,趕快開始coding吧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277841.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277841.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277841.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

react 學習

react官網地址&#xff1a;http://facebook.github.io/react/ webpack官網地址&#xff1a;http://webpack.js.org/ 英文 https://www.webpackjs.com/ 中文 參考資料&#xff1a; React 入門實例教程-阮一峰 webpack的學習 學習列表&#xff1a; 了解react的語法&#x…

如何獲取Teams Meeting 詳情

最近有一些朋友問我&#xff0c;有沒有可能獲取到會議的詳情&#xff0c;我搜索了目前所有的 teams 文檔&#xff0c;發現有一個api可以獲取&#xff0c;不過在我寫這篇文章的時候&#xff0c;這個 api 還在 preview 階段&#xff0c;可能在正式發布前&#xff0c;還會有一些變…

C++ : 內聯函數和引用變量

一.內聯函數 內聯函數和普通函數的使用方法沒有本質區別&#xff0c;我們來看一個例子&#xff0c;下面展示了內聯函數的使用方法&#xff1a; #include <iostream> using namespace std; //下面展示內聯函數的使用 inline double square(double x) {return (x*x);} int…

Teams Meeting 實時事件通知

Microsoft Teams最近推出了很多新的功能和api&#xff0c;我們今天就來一起看一下 teams 會議的實時事件通知&#xff0c;我覺得有了這個功能&#xff0c;我們的app&#xff0c;我們的bot又可以有很多可以實現的場景了。 我們來看看如何在 c# 里處理會議開始和結束這兩個事件。…

error記錄 | 不能將參數 1 從“const char [5]”轉換為“LPCTSTR

Windows使用兩種字符集ANSI和UNICODE&#xff0c;前者就是通常使用的單字節方式&#xff0c;但這種方式處理象中文這樣的雙字節字符不方便&#xff0c;容易出現半個漢字的情況。而后者是雙字節方式&#xff0c;方便處理雙字節字符。Windows NT的所有與字符有關的函數都提供兩…

JMM 學習筆記

并發編程的模型 并發編程需要解決的兩個問題&#xff1a;線程之間如何同步&#xff0c;線程之間如何通信。 線程之間通信&#xff1a;共享內存&#xff0c;消息傳遞。 共享內存通過線程之間讀-寫程序的公共狀態進行通信。消息傳遞要通過線程之間主動傳遞消息進行通信。 線程之間…

嵌套函數,匿名函數,高階函數

目錄 嵌套函數匿名函數高階函數嵌套函數 就是在函數里再定義一個函數 # 1,函數內部可以在定義函數 # 2,函數要想執行&#xff0c;必須要先被調用 def name1():print(kk)def name2():print(vfx)name2() name1() 輸出&#xff1a; kk vfx name2 現在他內部代碼找輸出&#xff0c;…

Teams Developer Portal介紹

在去年的 Build2021 大會上講到的 Teams Developer Portal 已經上線一段時間了&#xff0c;我這幾天玩了一下&#xff0c;發現比之前的 app studio 強大了很多&#xff0c;所以趕快寫篇文章和大家分享。 Developer Portal 有兩種訪問的方式&#xff0c;一個是網頁版&#xff0…

使用環境變量來配置 Teams App 的 manifest

上篇文章我們介紹了 Teams 的 Developer Portal&#xff0c;今天我想分享一個dev portal里一個比較實用的功能。這個功能在之前的 App Studio 里沒有。這個功能叫 Environment variables。 當我們真實開發一個 teams app的時候&#xff0c;肯定有自己的開發環境&#xff0c;測…

[Unity優化]批處理03:靜態批處理

[Unity優化]批處理03&#xff1a;靜態批處理 原理&#xff1a; 運行時&#xff0c;把需要進行靜態批處理的網格合并到一個新的網格中。雖然只進行一次合并操作&#xff0c;但是會占用更多的內存來存儲合并后的網格&#xff0c;并且被靜態批處理的物體無法移動旋轉縮放 要使用靜…

制造領域的人工智能技術

“AI將執行制造、質量控制、縮短設計時間、減少材料浪費、提高生產再利用率&#xff0c;執行預測性維護等等&#xff0c;盡管人工智能有望從根本上改變很多行業&#xff0c;但該技術非常適合制造業”Ng說。Andrew Ng是深度學習Google Brain項目的創始人兼斯坦福大學計算機科學兼…

如何獲取一個會議的 transcripts

Teams 開發團隊在過去半年里提供了很多的關于會議的 api&#xff0c;這讓我們又有了很多的可以實現的功能和場景。今天我要介紹的是如何獲取會議的 transcripts。 首先我們要知道的一個概念是&#xff1a;一個會議 meeting 可能有很多的 transcript&#xff0c;是一對多的關系…

JS獲取IP地址

HTML代碼&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script src"https://unpkg.com/vue/dist/vue.js"></script></head><body><div id"vm&quo…

1小時玩爆趣頭條自媒體平臺,增粉實戰操作分享

做自媒體的人最關注的就是每天自己賬號的后臺數據&#xff0c;因為數據決定當天的收益。因此只要每天能達到幾十萬的數據&#xff0c;相信對于做自媒體的朋友來說&#xff0c;一個月下來&#xff0c;最少也有1萬以上的收入。目前&#xff0c;自媒體平臺能賺錢的平臺有很多&…

營業額統計

傳送門 這個題...裸題啊,裸的不能再裸了 按天數插入,每次插入之后,比較和前驅后繼的差,取 min 統計入答案即可 注意之前已經插入過的值就不需要插入了.然后這題就 A 了 Code: #include <iostream> #include <cstdlib> #include <cstdio> #include <ctime&…

React setStats數組不更新,百思不得其解。

樓樓今日遇到個坑爹的問題。 就是 this.setStats({}) 對 this.stats 不更新問題 問題是這樣的 constructor(props) {super(props);this.state {imageList: []}WechatService.getMaterialOrealList("image").then((result) > {this.setState({imageList: result})…

隧道6in4 和隧道6to4(GNS3)

隧道6in4實驗配置 拓撲圖 Device Interface IP Address&#xff08;IPv6&#xff09; R1 F 0/0 10.1.81.1 F 0/1 2001:db8:cafe:81::10 R2 F 0/0 10.81.1.2 F 0/1 172.81.1.2 R3 F 0/0 172.81.1.3 F 0/1 2001:DB8:ACE:81::20 R4 F 0/0 2001:db8:cafe:81::4…

hadoop常用命令總結

2019獨角獸企業重金招聘Python工程師標準>>> 一、前述 分享一篇hadoop的常用命令的總結&#xff0c;將常用的Hadoop命令總結如下。 二、具體 1、啟動hadoop所有進程 start-all.sh等價于start-dfs.sh start-yarn.sh 但是一般不推薦使用start-all.sh(因為開源框架中內…

C面向對象編程

C語言面向對象編程 1. 定義一個SuperObject結構體, 里面包含最少的元素, 但是確實每一個對象都含有的, 這樣可以實現多態2. 每一個對象都是基于類的, 我們知道類都是單例對象, 所以我們創建結構體, TypeObject(類似于Java中的class), 接著每一個Object結構體中 都包含著一個對應…

幾道web題簡單總結

拖了好長時間&#xff0c;總結一下這一段時間做的幾道值得記錄一下的題目&#xff0c;有的沒做出來&#xff0c;但是學習到了新的東西 1.homebrew event loop ddctf的一道題目&#xff0c;學到了python eval函數的用法&#xff0c;首先分析題目&#xff1a; # -*- encoding: ut…