下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應用開發(fā)技術(shù)】C#開發(fā)微信之微信門戶菜單管理操作的示例分析
1、菜單的基礎(chǔ)信息click:
用戶點擊click類型按鈕后,微信服務器會通過消息接口推送消息類型為event
的結(jié)構(gòu)給開發(fā)者(參考消息接口指南),并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值與用戶進行交互;
view:
用戶點擊view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的url值
(即網(wǎng)頁鏈接),達到打開網(wǎng)頁的目的,建議與網(wǎng)頁授權(quán)獲取用戶基本信息接口結(jié)合,獲得用戶的登入個人信息。
{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"click",
"name":"歌手簡介",
"key":"V1001_TODAY_SINGER"
},
{
"name":"菜單",
"sub_button":[
{
"type":"view",
"name":"搜索",
"url":"/"
},
{
"type":"view",
"name":"視頻",
"url":"/"
},
{
"type":"click",
"name":"贊一下我們",
"key":"V1001_GOOD"
}]
}]
}2、菜單的實體類定義/upload/information/20201208/260/14558.jpg[JsonProperty(
NullValueHandling
=
NullValueHandling.Ignore)]
///
<summary>
///
菜單基本信息
///
</summary>
public
class
MenuInfo
{
///
<summary>
///
按鈕描述,既按鈕名字,不超過16個字節(jié),子菜單不超過40個字節(jié)
///
</summary>
public
string
name
{
get;
set;
}
///
<summary>
///
按鈕類型(click或view)
///
</summary>
[JsonProperty(NullValueHandling
=
NullValueHandling.Ignore)]
public
string
type
{
get;
set;
}
///
<summary>
///
按鈕KEY值,用于消息接口(event類型)推送,不超過128字節(jié)
///
</summary>
[JsonProperty(NullValueHandling
=
NullValueHandling.Ignore)]
public
string
key
{
get;
set;
}
///
<summary>
///
網(wǎng)頁鏈接,用戶點擊按鈕可打開鏈接,不超過256字節(jié)
///
</summary>
[JsonProperty(NullValueHandling
=
NullValueHandling.Ignore)]
public
string
url
{
get;
set;
}
///
<summary>
///
子按鈕數(shù)組,按鈕個數(shù)應為2~5個
///
</summary>
[JsonProperty(NullValueHandling
=
NullValueHandling.Ignore)]
public
List<MenuInfo>
sub_button
{
get;
set;
}
///
<summary>
///
參數(shù)化構(gòu)造函數(shù)
///
</summary>
///
<param
name="name">按鈕名稱</param>
///
<param
name="buttonType">菜單按鈕類型</param>
///
<param
name="value">按鈕的鍵值(Click),或者連接URL(View)</param>
public
MenuInfo(string
name,
ButtonType
buttonType,
string
value)
{
=
name;
this.type
=
buttonType.ToString();
if
(buttonType
==
ButtonType.click)
{
this.key
=
value;
}
else
if(buttonType
==
ButtonType.view)
{
this.url
=
value;
}
}
///
<summary>
///
參數(shù)化構(gòu)造函數(shù),用于構(gòu)造子菜單
///
</summary>
///
<param
name="name">按鈕名稱</param>
///
<param
name="sub_button">子菜單集合</param>
public
MenuInfo(string
name,
IEnumerable<MenuInfo>
sub_button)
{
=
name;
this.sub_button
=
new
List<MenuInfo>();
this.sub_button.AddRange(sub_button);
}
///
<summary>
///
菜單的Json字符串對象
///
</summary>
public
class
MenuJson
{
public
List<MenuInfo>
button
{
get;
set;
}
public
MenuJson()
{
button
=
new
List<MenuInfo>();
}
}
///
<summary>
///
菜單列表的Json對象
///
</summary>
public
class
MenuListJson
{
public
MenuJson
menu
{
get;
set;
}
}3、菜單管理操作的接口實現(xiàn)
///
<summary>
///
菜單的相關(guān)操作
///
</summary>
public
interface
IMenuApi
{
///
<summary>
///
獲取菜單數(shù)據(jù)
///
</summary>
///
<param
name="accessToken">調(diào)用接口憑證</param>
///
<returns></returns>
MenuJson
GetMenu(string
accessToken);
///
<summary>
///
創(chuàng)建菜單
///
</summary>
///
<param
name="accessToken">調(diào)用接口憑證</param>
///
<param
name="menuJson">菜單對象</param>
///
<returns></returns>
CommonResult
CreateMenu(string
accessToken,
MenuJson
menuJson);
///
<summary>
///
刪除菜單
///
</summary>
///
<param
name="accessToken">調(diào)用接口憑證</param>
///
<returns></returns>
CommonResult
DeleteMenu(string
accessToken);
}
///
<summary>
///
獲取菜單數(shù)據(jù)
///
</summary>
///
<param
name="accessToken">調(diào)用接口憑證</param>
///
<returns></returns>
public
MenuJson
GetMenu(string
accessToken)
{
MenuJson
menu
=
null;
var
url
=
string.Format("/{0}",
accessToken);
MenuListJson
list
=
JsonHelper<MenuListJson>.ConvertJson(url);
if
(list
!=
null)
{
menu
=
list.menu;
}
return
menu;
}
private
void
btnGetMenuJson_Click(object
sender,
EventArgs
e)
{
IMenuApi
menuBLL
=
new
MenuApi();
MenuJson
menu
=
menuBLL.GetMenu(token);
if
(menu
!=
null)
{
Console.WriteLine(menu.ToJson());
}
}
///
<summary>
///
創(chuàng)建菜單
///
</summary>
///
<param
name="accessToken">調(diào)用接口憑證</param>
///
<param
name="menuJson">菜單對象</param>
///
<returns></returns>
public
CommonResult
CreateMenu(string
accessToken,
MenuJson
menuJson)
{
var
url
=
string.Format("/{0}",
accessToken);
string
postData
=
menuJson.ToJson();
return
Helper.GetExecuteResult(url,
postData);
}
///
<summary>
///
刪除菜單
///
</summary>
///
<param
name="accessToken">調(diào)用接口憑證</param>
///
<returns></returns>
public
CommonResult
DeleteMenu(string
accessToken)
{
var
url
=
string.Format("/{0}",
accessToken);
return
Helper.GetExecuteResult(url);
}
private
void
btnCreateMenu_Click(object
sender,
EventArgs
e)
{
MenuInfo
productInfo
=
new
MenuInfo("軟件產(chǎn)品",
new
MenuInfo[]
{
new
MenuInfo("病人資料管理系統(tǒng)",
ButtonType.click,
"patient"),
new
MenuInfo("客戶關(guān)系管理系統(tǒng)",
ButtonType.click,
"crm"),
new
MenuInfo("酒店管理系統(tǒng)",
ButtonType.click,
"hotel"),
new
MenuInfo("送水管理系統(tǒng)",
ButtonType.click,
"water")
});
MenuInfo
frameworkInfo
=
new
MenuInfo("框架產(chǎn)品",
new
MenuInfo[]
{
new
MenuInfo("Win開發(fā)框架",
ButtonType.click,
"win"),
new
MenuInfo("WCF開發(fā)框架",
ButtonType.click,
"wcf"),
new
MenuInfo("混合式框架",
ButtonType.click,
"mix"),
new
MenuInfo("Web開發(fā)框架",
ButtonType.click,
"web"),
new
MenuInfo("代碼生成工具",
ButtonType.click,
"database2sharp")
});
MenuInfo
relatedInfo
=
new
MenuInfo("相關(guān)鏈接",
new
MenuInfo[]
{
new
MenuInfo("公司介紹",
ButtonType.click,
"Event_Company"),
new
MenuInfo("官方網(wǎng)站",
ButtonType.view,
"/"),
ne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版牛羊肉冷鏈物流信息化建設(shè)與運營合同4篇
- 2025年度環(huán)保節(jié)能技術(shù)引進與應用實施合同2篇
- 二零二五年度模具采購合同與模具生產(chǎn)效率提升合同4篇
- 2025年度個人肖像權(quán)使用合同
- 2025年度個人股份轉(zhuǎn)讓與公司治理優(yōu)化合同4篇
- 2025年度管道工程鋼管腳手架安裝與拆除合同
- 2025年度個人銷售傭金合同(含年度銷售目標設(shè)定)4篇
- 2025年度個人房屋改造工程承包合同樣本2篇
- 2025年度智能門控系統(tǒng)與木門安裝集成合同4篇
- 2025年度醫(yī)療健康行業(yè)股權(quán)融資協(xié)議書合同
- 骨髓穿刺課件
- 鄉(xiāng)村治理中正式制度與非正式制度的關(guān)系解析
- 2024版義務教育小學數(shù)學課程標準
- 智能護理:人工智能助力的醫(yī)療創(chuàng)新
- 國家中小學智慧教育平臺培訓專題講座
- 5G+教育5G技術(shù)在智慧校園教育專網(wǎng)系統(tǒng)的應用
- VI設(shè)計輔助圖形設(shè)計
- 淺談小學勞動教育的開展與探究 論文
- 2023年全國4月高等教育自學考試管理學原理00054試題及答案新編
- 河北省大學生調(diào)研河北社會調(diào)查活動項目申請書
- JJG 921-2021環(huán)境振動分析儀
評論
0/150
提交評論