日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#開發(fā)微信門戶及應(yīng)用(15)-微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能

admin
2014年12月2日 1:0 本文熱度 5254


前面介紹了很多篇關(guān)于使用C#開發(fā)微信門戶及應(yīng)用的文章,基本上把當(dāng)時(shí)微信能做的接口都封裝差不多了,微信框架也積累了不少模塊和用戶,最近發(fā)現(xiàn)微信公眾平臺(tái)增加了不少內(nèi)容,特別是在自定義菜單里面增加了掃一掃、發(fā)圖片、發(fā)地理位置功能,這幾個(gè)功能模塊很重要,想想以前想在微信公眾號(hào)里面增加一個(gè)掃描二維碼的功能,都做不了,現(xiàn)在可以了,還可以拍照上傳等功能,本文主要介紹基于我前面的框架系列文章,進(jìn)一步介紹如何集成和使用這些新增功能。


1、微信幾個(gè)功能的官方介紹



1). 掃碼推送事件


用戶點(diǎn)擊按鈕后,微信客戶端將調(diào)起掃一掃工具,完成掃碼操作后顯示掃描結(jié)果(如果是URL,將進(jìn)入U(xiǎn)RL),且會(huì)將掃碼的結(jié)果傳給開發(fā)者,開發(fā)者可以下發(fā)消息。



2). 掃碼推送事件,且彈出“消息接收中”提示框


用戶點(diǎn)擊按鈕后,微信客戶端將調(diào)起掃一掃工具,完成掃碼操作后,將掃碼的結(jié)果傳給開發(fā)者,同時(shí)收起掃一掃工具,然后彈出“消息接收中”提示框,隨后可能會(huì)收到開發(fā)者下發(fā)的消息。



3). 彈出系統(tǒng)拍照發(fā)圖


用戶點(diǎn)擊按鈕后,微信客戶端將調(diào)起系統(tǒng)相機(jī),完成拍照操作后,將拍攝的相片發(fā)送給開發(fā)者,并推送事件給開發(fā)者,同時(shí)收起系統(tǒng)相機(jī),隨后可能會(huì)收到開發(fā)者下發(fā)的消息。



4). 彈出拍照或者相冊(cè)發(fā)圖


用戶點(diǎn)擊按鈕后,微信客戶端將彈出選擇器供用戶選擇“拍照”或者“從手機(jī)相冊(cè)選擇”。用戶選擇后即走其他兩種流程。



5). 彈出微信相冊(cè)發(fā)圖器


用戶點(diǎn)擊按鈕后,微信客戶端將調(diào)起微信相冊(cè),完成選擇操作后,將選擇的相片發(fā)送給開發(fā)者的服務(wù)器,并推送事件給開發(fā)者,同時(shí)收起相冊(cè),隨后可能會(huì)收到開發(fā)者下發(fā)的消息。



6). 彈出地理位置選擇器


用戶點(diǎn)擊按鈕后,微信客戶端將調(diào)起地理位置選擇工具,完成選擇操作后,將選擇的地理位置發(fā)送給開發(fā)者的服務(wù)器,同時(shí)收起位置選擇工具,隨后可能會(huì)收到開發(fā)者下發(fā)的消息。
但請(qǐng)注意,以上新增能力,均僅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用戶,舊版本微信用戶點(diǎn)擊后將沒(méi)有回應(yīng),開發(fā)者也不能正常接收到事件推送。


 


2、微信新菜單功能的測(cè)試公眾號(hào)


微信不僅增加了這些功能模塊的支持,還考慮到我們開發(fā)人員的方便,增加了一個(gè)叫做“menutest"的公眾號(hào),方便我們測(cè)試。我們?cè)诠娞?hào)搜索“menutest",然后關(guān)注它即可進(jìn)行測(cè)試幾個(gè)新增功能了。



“menutest"的公眾號(hào)名稱是”自定義菜單拓展測(cè)試“,我關(guān)注它并進(jìn)行了測(cè)試,二維碼、圖片、地理位置都很OK,本身能夠響應(yīng)這些事件,并且圖片、地理位置自身還能出現(xiàn)一個(gè)對(duì)應(yīng)的事件,如下所示。


圖片發(fā)送可以分為拍照、拍照和相冊(cè)、微信相冊(cè)三類,感覺后面兩個(gè)有點(diǎn)類似,但有這些功能都很不錯(cuò)的。


       


3、改進(jìn)菜單對(duì)象和提交菜單


前面說(shuō)了,微信提供這些功能,可以在菜單里面進(jìn)行集成,也就是菜單的類型由原來(lái)CLICK/VIEW兩種,變?yōu)楝F(xiàn)在8種類型,增加2個(gè)掃碼操作、3種圖片操作、1種地理位置操作。


因此把菜單的枚舉類型擴(kuò)展一下,如下所示。



復(fù)制代碼
    /// <summary>
/// 菜單按鈕類型
/// </summary>
public enum ButtonType
{
/// <summary>
/// 點(diǎn)擊
/// </summary>
click,
/// <summary>
/// Url
/// </summary>
view,
/// <summary>
/// 掃碼推事件的事件推送
/// </summary>
scancode_push,
/// <summary>
/// 掃碼推事件且彈出“消息接收中”提示框的事件推送
/// </summary>
scancode_waitmsg,
/// <summary>
/// 彈出系統(tǒng)拍照發(fā)圖的事件推送
/// </summary>
pic_sysphoto,
/// <summary>
/// 彈出拍照或者相冊(cè)發(fā)圖的事件推送
/// </summary>
pic_photo_or_album,
/// <summary>
/// 彈出微信相冊(cè)發(fā)圖器的事件推送
/// </summary>
pic_weixin,
/// <summary>
/// 彈出地理位置選擇器的事件推送
/// </summary>
location_select
}

復(fù)制代碼

然后在Winform里面調(diào)用創(chuàng)建菜單操作代碼如下所示:



復(fù)制代碼
        private void btnCreateMenu_Click(object sender, EventArgs e)
{
MenuJson productInfo
= new MenuJson("新功能測(cè)試", new MenuJson[] {
new MenuJson("掃碼推事件", ButtonType.scancode_push, "scancode_push")
,
new MenuJson("系統(tǒng)拍照發(fā)圖", ButtonType.pic_sysphoto, "pic_sysphoto")
,
new MenuJson("拍照相冊(cè)發(fā)圖", ButtonType.pic_photo_or_album, "pic_photo_or_album")
,
new MenuJson("微信相冊(cè)發(fā)圖", ButtonType.pic_weixin, "pic_weixin")
,
new MenuJson("地理位置選擇", ButtonType.location_select, "location_select")
});
MenuJson frameworkInfo
= new MenuJson("框架產(chǎn)品", new MenuJson[] {
new MenuJson("Win開發(fā)框架", ButtonType.click, "win"),
new MenuJson("WCF開發(fā)框架", ButtonType.click, "wcf"),
new MenuJson("混合式框架", ButtonType.click, "mix"),
new MenuJson("Web開發(fā)框架", ButtonType.click, "web")
,
new MenuJson("代碼生成工具", ButtonType.click, "database2sharp")
});
MenuJson relatedInfo
= new MenuJson("相關(guān)鏈接", new MenuJson[] {
new MenuJson("公司介紹", ButtonType.click, "event_company"),
new MenuJson("官方網(wǎng)站", ButtonType.view, "http://www.iqidi.com"),
new MenuJson("聯(lián)系我們", ButtonType.click, "event_contact"),
new MenuJson("應(yīng)答系統(tǒng)", ButtonType.click, "set-1"),
new MenuJson("人工客服", ButtonType.click, "event_customservice")
});
MenuListJson menuJson
= new MenuListJson();
menuJson.button.AddRange(
new MenuJson[] { productInfo, frameworkInfo, relatedInfo });
if (MessageUtil.ShowYesNoAndWarning("您確認(rèn)要?jiǎng)?chuàng)建菜單嗎") == System.Windows.Forms.DialogResult.Yes)
{
IMenuApi menuBLL
= new MenuApi();
CommonResult result
= menuBLL.CreateMenu(token, menuJson);
Console.WriteLine(
"創(chuàng)建菜單:" + (result.Success ? "成功" : "失敗:" + result.ErrorMessage));
}
}

復(fù)制代碼

當(dāng)然,一般情況下我們都是在Web后臺(tái)系統(tǒng)進(jìn)行的,維護(hù)菜單都是在自己微信平臺(tái)上進(jìn)行菜單管理,然后一次性提交到微信服務(wù)器即可。



而在Web后臺(tái),只需要把數(shù)據(jù)庫(kù)的數(shù)據(jù)變化為Json數(shù)據(jù)提交即可,操作和上面的類似。



復(fù)制代碼
        /// <summary>
///更新微信菜單
/// </summary>
/// <returns></returns>
public ActionResult UpdateWeixinMenu()
{
string token = base.GetAccessToken();
MenuListJson menuJson
= GetWeixinMenu();
IMenuApi menuApi
= new MenuApi();
CommonResult result
= menuApi.CreateMenu(token, menuJson);
return ToJsonContent(result);
}

復(fù)制代碼

4、微信掃一掃功能集成 


 前面講了,有了最新的功能,我們就可以實(shí)現(xiàn)掃一掃功能,從而可以掃描條形碼,二維碼的功能。有了條形碼、二維碼的快速和識(shí)別,我們就能開發(fā)一些如條碼查詢、商品處理等功能了。


這里我們介紹如何在我的微信開發(fā)框架里面整合這個(gè)掃一掃的功能處理操作。


前面已經(jīng)增加了一些新功能的測(cè)試菜單,我們要做的就是響應(yīng)這些事件處理,然后對(duì)他們進(jìn)行應(yīng)答處理就可以了。


下面是根據(jù)事件進(jìn)行的一些API跳轉(zhuǎn)處理,我們同時(shí)定義了幾個(gè)相關(guān)的實(shí)體類用來(lái)處理他們的信息,如RequestEventScancodePush、RequestEventScancodeWaitmsg、RequestEventPicSysphoto等等。


RequestEventScancodeWaitmsg實(shí)體類的代碼如下所示,其他的類似處理。



復(fù)制代碼
    /// <summary>
/// 掃碼推事件且彈出“消息接收中”提示框的事件推送
/// </summary>
[System.Xml.Serialization.XmlRoot(ElementName = "xml")]
public class RequestEventScancodeWaitmsg : BaseEvent
{
public RequestEventScancodeWaitmsg()
{
this.MsgType = RequestMsgType.Event.ToString().ToLower();
this.Event = RequestEvent.scancode_waitmsg.ToString();
this.ScanCodeInfo = new ScanCodeInfo();
}
/// <summary>
/// 事件KEY值,由開發(fā)者在創(chuàng)建菜單時(shí)設(shè)定
/// </summary>
public string EventKey { get; set; }
/// <summary>
/// 掃描信息
/// </summary>
public ScanCodeInfo ScanCodeInfo { get; set; }
}

復(fù)制代碼

而根據(jù)實(shí)體類強(qiáng)類型的處理接口流轉(zhuǎn)操作如下所示。



復(fù)制代碼
                               case RequestEvent.scancode_push:
{
//掃碼推事件的事件推送
RequestEventScancodePush info = XmlConvertor.XmlToObject(postStr, typeof(RequestEventScancodePush)) as RequestEventScancodePush;
if (info != null)
{
responseContent
= actionBLL.HandleEventScancodePush(info);
}

}
break;
case RequestEvent.scancode_waitmsg:
{
//掃碼推事件且彈出“消息接收中”提示框的事件推送
RequestEventScancodeWaitmsg info = XmlConvertor.XmlToObject(postStr, typeof(RequestEventScancodeWaitmsg)) as RequestEventScancodeWaitmsg;
if (info != null)
{
responseContent
= actionBLL.HandleEventScancodeWaitmsg(info);
}

}
break;
case RequestEvent.pic_sysphoto:
{
//彈出系統(tǒng)拍照發(fā)圖的事件推送
RequestEventPicSysphoto info = XmlConvertor.XmlToObject(postStr, typeof(RequestEventPicSysphoto)) as RequestEventPicSysphoto;
if (info != null)
{
responseContent
= actionBLL.HandleEventPicSysphoto(info);
}

}
break;
..................

復(fù)制代碼

處理掃描結(jié)果并返回的最終代碼如下所示。



復(fù)制代碼
        /// <summary>
/// 掃碼推事件且彈出“消息接收中”提示框的事件推送的處理
/// </summary>
/// <param name="info">掃描信息</param>
/// <returns></returns>
public string HandleEventScancodeWaitmsg(RequestEventScancodeWaitmsg info)
{
ResponseText response
= new ResponseText(info);
response.Content
= string.Format("您的信息為:{0},可以結(jié)合后臺(tái)進(jìn)行數(shù)據(jù)查詢。", info.ScanCodeInfo.ScanResult);
return response.ToXml();
}

復(fù)制代碼

最后我們測(cè)試掃描一個(gè)條形碼,可以看到返回的結(jié)果界面操作如下所示。



 


5、新菜單功能測(cè)試發(fā)現(xiàn)的問(wèn)題


前面介紹了一些新菜單功能模塊的集成,我個(gè)人對(duì)這種掃一掃菜單功能非常贊賞,這也是微信逐步整合更多硬件資源和接口處理的趨向,不過(guò)在集成使用的時(shí)候,發(fā)現(xiàn)公眾號(hào)偶爾出現(xiàn)閃退的情況,還有就是這些新功能雖然后臺(tái)能夠?qū)崿F(xiàn)數(shù)據(jù)的處理和接收,但是有一些不能返回應(yīng)答消息,很郁悶。也許隨著版本研發(fā)的加快,這些功能很快得到完善和解決。


另外微信開放平臺(tái)也投入使用了,好些認(rèn)證也是300元一年,不過(guò)暫時(shí)沒(méi)有其應(yīng)用的場(chǎng)景,我只是用到了它來(lái)獲取微信賬號(hào)的unionid的功能,其他功能慢慢了解吧。


還有就是微信的企業(yè)號(hào)也已經(jīng)出來(lái)了,而且我也已經(jīng)申請(qǐng)認(rèn)證通過(guò),它的開發(fā)用戶的API也有不少,有空繼續(xù)研究并整合到微信開發(fā)框架里面吧。


 


如果對(duì)這個(gè)《C#開發(fā)微信門戶及應(yīng)用》系列感興趣,可以關(guān)注我的其他文章,系列隨筆如下所示:


C#開發(fā)微信門戶及應(yīng)用(20)-微信企業(yè)號(hào)的菜單管理


C#開發(fā)微信門戶及應(yīng)用(19)-微信企業(yè)號(hào)的消息發(fā)送(文本、圖片、文件、語(yǔ)音、視頻、圖文消息等)


C#開發(fā)微信門戶及應(yīng)用(18)-微信企業(yè)號(hào)的通訊錄管理開發(fā)之成員管理


C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開發(fā)之部門管理


C#開發(fā)微信門戶及應(yīng)用(16)-微信企業(yè)號(hào)的配置和使用


C#開發(fā)微信門戶及應(yīng)用(15)-微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能


 C#開發(fā)微信門戶及應(yīng)用(14)-在微信菜單中采用重定向獲取用戶數(shù)據(jù)


C#開發(fā)微信門戶及應(yīng)用(13)-使用地理位置擴(kuò)展相關(guān)應(yīng)用


C#開發(fā)微信門戶及應(yīng)用(12)-使用語(yǔ)音處理


C#開發(fā)微信門戶及應(yīng)用(11)--微信菜單的多種表現(xiàn)方式介紹


C#開發(fā)微信門戶及應(yīng)用(10)--在管理系統(tǒng)中同步微信用戶分組信息


C#開發(fā)微信門戶及應(yīng)用(9)-微信門戶菜單管理及提交到微信服務(wù)器


C#開發(fā)微信門戶及應(yīng)用(8)-微信門戶應(yīng)用管理系統(tǒng)功能介紹


C#開發(fā)微信門戶及應(yīng)用(7)-微信多客服功能及開發(fā)集成


C#開發(fā)微信門戶及應(yīng)用(6)--微信門戶菜單的管理操作


C#開發(fā)微信門戶及應(yīng)用(5)--用戶分組信息管理


C#開發(fā)微信門戶及應(yīng)用(4)--關(guān)注用戶列表及詳細(xì)信息管理


C#開發(fā)微信門戶及應(yīng)用(3)--文本消息和圖文消息的應(yīng)答


C#開發(fā)微信門戶及應(yīng)用(2)--微信消息的處理和應(yīng)答


C#開發(fā)微信門戶及應(yīng)用(1)--開始使用微信接口


 



主要研究技術(shù):代碼生成工具、Visio二次開發(fā)、客戶關(guān)系管理軟件、送水管理軟件等共享軟件開發(fā)
專注于Winform開發(fā)框架、Web開發(fā)框架、WCF開發(fā)框架的研究及應(yīng)用。
  轉(zhuǎn)載請(qǐng)注明出處:
撰寫人:伍華聰  http://www.iqidi.com 
    





該文章在 2014/12/2 1:00:45 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved