真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能

這篇文章主要介紹如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、江寧ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的江寧網(wǎng)站制作公司

1、微信幾個功能的官方介紹

1). 掃碼推送事件

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

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

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

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

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

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

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

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

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

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

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

2、微信新菜單功能的測試公眾號

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

如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能

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

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

如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能        如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能

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

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

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

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

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

        private void btnCreateMenu_Click(object sender, EventArgs e)
        {
            MenuJson productInfo = new MenuJson("新功能測試", new MenuJson[] { 
                new MenuJson("掃碼推事件", ButtonType.scancode_push, "scancode_push") 
                ,new MenuJson("系統(tǒng)拍照發(fā)圖", ButtonType.pic_sysphoto, "pic_sysphoto") 
                , new MenuJson("拍照相冊發(fā)圖", ButtonType.pic_photo_or_album, "pic_photo_or_album") 
                , new MenuJson("微信相冊發(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.php.cn/"),                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)要創(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));
            }
        }

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

如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能

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

        /// 
        ///更新微信菜單        /// 
        /// 
        public ActionResult UpdateWeixinMenu()
        {            string token = base.GetAccessToken();
            MenuListJson menuJson = GetWeixinMenu();

            IMenuApi menuApi = new MenuApi();
            CommonResult result = menuApi.CreateMenu(token, menuJson);            return ToJsonContent(result);
        }

4、微信掃一掃功能集成

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

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

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

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

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

    /// 
    /// 掃碼推事件且彈出“消息接收中”提示框的事件推送    /// 
    [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();
        }        /// 
        /// 事件KEY值,由開發(fā)者在創(chuàng)建菜單時(shí)設(shè)定        /// 
        public string EventKey { get; set; }        /// 
        /// 掃描信息        /// 
        public ScanCodeInfo ScanCodeInfo { get; set; }

    }

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

RequestEventScancodePush info = XmlConvertor.XmlToObject(postStr, (RequestEventScancodePush))  (info != =
                                    RequestEventScancodeWaitmsg info = XmlConvertor.XmlToObject(postStr, (RequestEventScancodeWaitmsg))  (info != =
                                    RequestEventPicSysphoto info = XmlConvertor.XmlToObject(postStr, (RequestEventPicSysphoto))  (info != =;
..................

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

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

以上是“如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


名稱欄目:如何使用C#實(shí)現(xiàn)微信菜單增加掃一掃、發(fā)圖片、發(fā)地理位置功能
標(biāo)題來源:http://weahome.cn/article/pgishd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部