• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信公众号 > C#开发微信门户及应用-微信菜单增加扫一扫、发图片、发地理位置功能

C#开发微信门户及应用-微信菜单增加扫一扫、发图片、发地理位置功能

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了C# 微信门户等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
前面介绍了很多篇关于使用C#开发微信门户及应用的文章,基本上把当时微信能做的接口都封装差不多了,微信框架也积累了不少模块和用户,最近发现微信公众平台增加了不少内容,特别是在自定义菜单里面增加了扫一扫、发图片、发地理位置功能,这几个功能模块很重要,想想以前想在微信公众号里面增加一个扫描二维码的功能,都做不了,现在可以了,还可以拍照上传等功能,本文主要介绍基于我前面的框架系列文章,进一步介绍如何集成和使用这些新增功能。

1、微信几个功能的官方介绍

1). 扫码推送事件

用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。

2). 扫码推送事件,且弹出“消息接收中”提示框

用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。

3). 弹出系统拍照发图

用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。

4). 弹出拍照或者相册发图

用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。

5). 弹出微信相册发图器

用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。

6). 弹出地理位置选择器

用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。
但请注意,以上新增能力,均仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。

2、微信新菜单功能的测试公众号

微信不仅增加了这些功能模块的支持,还考虑到我们开发人员的方便,增加了一个叫做“menutest"的公众号,方便我们测试。我们在公众号搜索“menutest",然后关注它即可进行测试几个新增功能了。

C#开发微信门户及应用-微信菜单增加扫一扫、发图片、发地理位置功能

“menutest"的公众号名称是”自定义菜单拓展测试“,我关注它并进行了测试,二维码、图片、地理位置都很OK,本身能够响应这些事件,并且图片、地理位置自身还能出现一个对应的事件,如下所示。

图片发送可以分为拍照、拍照和相册、微信相册三类,感觉后面两个有点类似,但有这些功能都很不错的。

C#开发微信门户及应用-微信菜单增加扫一扫、发图片、发地理位置功能 C#开发微信门户及应用-微信菜单增加扫一扫、发图片、发地理位置功能

3、改进菜单对象和提交菜单

前面说了,微信提供这些功能,可以在菜单里面进行集成,也就是菜单的类型由原来CLICK/VIEW两种,变为现在8种类型,增加2个扫码操作、3种图片操作、1种地理位置操作。

因此把菜单的枚举类型扩展一下,如下所示。

    /// <summary>
    /// 菜单按钮类型    /// </summary>
    public enum ButtonType
    {        /// <summary>
        /// 点击        /// </summary>        click,        /// <summary>
        /// Url        /// </summary>        view,        /// <summary>
        /// 扫码推事件的事件推送        /// </summary>        scancode_push,        /// <summary>
        /// 扫码推事件且弹出“消息接收中”提示框的事件推送        /// </summary>        scancode_waitmsg,        /// <summary>
        /// 弹出系统拍照发图的事件推送        /// </summary>        pic_sysphoto,        /// <summary>
        /// 弹出拍照或者相册发图的事件推送        /// </summary>        pic_photo_or_album,        /// <summary>
        /// 弹出微信相册发图器的事件推送        /// </summary>        pic_weixin,        /// <summary>
        /// 弹出地理位置选择器的事件推送        /// </summary>        location_select
    }

然后在Winform里面调用创建菜单操作代码如下所示:

        private void btnCreateMenu_Click(object sender, EventArgs e)
        {
            MenuJson productInfo = new MenuJson("新功能测试", new MenuJson[] { 
                new MenuJson("扫码推事件", ButtonType.scancode_push, "scancode_push") 
                ,new MenuJson("系统拍照发图", ButtonType.pic_sysphoto, "pic_sysphoto") 
                , new MenuJson("拍照相册发图", ButtonType.pic_photo_or_album, "pic_photo_or_album") 
                , new MenuJson("微信相册发图", ButtonType.pic_weixin, "pic_weixin") 
                , new MenuJson("地理位置选择", ButtonType.location_select, "location_select") 
            });                                    

            MenuJson frameworkInfo = new MenuJson("框架产品", new MenuJson[] { 
                new MenuJson("Win开发框架", ButtonType.click, "win"),                new MenuJson("WCF开发框架", ButtonType.click, "wcf"),                new MenuJson("混合式框架", ButtonType.click, "mix"), 
                new MenuJson("Web开发框架", ButtonType.click, "web")
                ,new MenuJson("代码生成工具", ButtonType.click, "database2sharp")
            });

            MenuJson relatedInfo = new MenuJson("相关链接", new MenuJson[] { 
                new MenuJson("公司介绍", ButtonType.click, "event_company"),                new MenuJson("官方网站", ButtonType.view, "http:///"),                new MenuJson("联系我们", ButtonType.click, "event_contact"),                new MenuJson("应答系统", 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("您确认要创建菜单吗") == System.Windows.Forms.DialogResult.Yes)
            {
                IMenuApi menuBLL = new MenuApi();
                CommonResult result = menuBLL.CreateMenu(token, menuJson);
                Console.WriteLine("创建菜单:" + (result.Success ? "成功" : "失败:" + result.ErrorMessage));
            }
        }

当然,一般情况下我们都是在Web后台系统进行的,维护菜单都是在自己微信平台上进行菜单管理,然后一次性提交到微信服务器即可。

C#开发微信门户及应用-微信菜单增加扫一扫、发图片、发地理位置功能

而在Web后台,只需要把数据库的数据变化为Json数据提交即可,操作和上面的类似。

        /// <summary>
        ///更新微信菜单        /// </summary>
        /// <returns></returns>
        public ActionResult UpdateWeixinMenu()
        {            string token = base.GetAcce



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 微信公众号开发:通过accesstoken将长连接转换为短链接
  • 从源代码中带你解析微信开发
  • C#开发微信门户及应用微信小店货架信息管理
  • 微信开发之接收事件推送和消息排重
  • 微信公众平台开发管理后台开发
  • Java的微信开发中使用XML格式和JSON格式数据的详解及实例
  • C#微信开发之旅:基础类之HttpClientHelper(更新:SSL安全策略)
  • .Net代开发微信公众平台开发之处理图片代码解析
  • 微信公众平台开发:多客服接口说明
  • 利用java开发微信实现微信主动推送消息实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于微信支付接口调研分享
    • 详细讲解微信指数与百度指数到底有什么区别
    • 升级 selenium 3.3.0 后报错解决办法
    • Wex5开发基础之微信支付的详细介绍
    • 微信开发html5轻游戏中的几个坑
    • php微信公众账号开发遇到的五个坑总结
    • 微信web开发者工具介绍
    • 微信开发中使元素占满全屏的方法介绍
    • 如何获取dom内class的值
    • C#开发微信门户及应用(5)--用户分组信息管理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有