精华内容
下载资源
问答
  • 微信小程序实现store功能

    千次阅读 2019-10-17 16:14:20
    上一期《微信小程序实现数据侦听器watch》,在小程序中实现了Vue的watch功能。但小程序没有状态管理,目前的状况下,跨页通讯和数据传递非常的蛋疼,会造成难以维护和调试。这次就来实现store,全局状态管理功能,来...

    开始

    上一期《微信小程序实现数据侦听器watch》,在小程序中实现了Vue的watch功能。但小程序没有状态管理,目前的状况下,跨页通讯和数据传递非常的蛋疼,会造成难以维护和调试。这次就来实现store,全局状态管理功能,来解决这个蛋疼的问题,有以下几个目标:

    • 在Page和Component中所有生命周期和函数中均可使用store,均可修改state
    • 少量几行代码即可引入,不修改之前代码结构,不需要每个页面都引入
    • 使用方式和vue一样

    方案

    store其实就是一个全局变量,所有页面都共享,实现store功能有2个关键点

    1. Page和Component中怎么引用全局变量state,怎么将数据渲染到页面上
    2. 修改了全局变量state,怎么将其他Page和Component引用的全局变量state也更新并渲染到页面上

    第一个问题,在Page的onLoad函数和Component的attached函数里,在options中增加一个对全局变量state的引用,并调用this.setData方法将变量state的数据渲染到页面上

    第二个问题,需要维持一个列表,将当前已加载的Page和Component都储存起来,也就是在Page的onLoad函数和Component的attached函数中将当前对象添加到列表中,在Page的onUnload函数和Component的detached函数中将当前对象从列表中移除。然后当有一处调用setState方法时,遍历这个列表中所有对象,调用this.setData方法将变量state的数据渲染到页面上。

    下面来看实现代码,写一个store.js,内容如下:

    // 全局变量
    let store = {
      msg: 'xxxxx',
      user: {}
    }
    // 所有已加载的页面和组件
    let pcList = []
    function initPage() {
      let oldPage = Page
      Page = function(obj) {
        let oldOnLoad = obj.onLoad || function() {}
        let oldOnUnload = obj.onUnload || function() {}
        obj.onLoad = function() {
          // 实现store功能,onLoad的时候将state增加到Page的data中
          loadStore.call(this)
          // 实现store的setState功能
          this.setState = function(obj) {
            setState.call(this, obj)
          }
          oldOnLoad.call(this, ...arguments)
        }
        obj.onUnload = function() {
          // 把this传进function
          unloadStore.call(this)
          oldOnUnload.call(this, ...arguments)
        }
        return oldPage(obj)
      }
    }
    function initComponent() {
      let oldComponent = Component
      Component = function(obj) {
        let oldAttached = obj.attached || function() {}
        let oldDetached = obj.detached || function() {}
        obj.attached = function() {
          // 实现store功能,onLoad的时候将state增加到Component的data中
          loadStore.call(this)
          // 实现store的setState功能
          this.setState = function(obj) {
            setState.call(this, obj)
          }
          oldAttached.call(this, ...arguments)
        }
        obj.detached = function() {
          // 把this传进function
          unloadStore.call(this)
          oldDetached.call(this, ...arguments)
        }
        return oldComponent(obj)
      }
    }
    function setState(obj) {
      let keys = Object.keys(obj)
      let newObj = {}
      keys.forEach(key => {
        newObj['$state.' + key] = obj[key]
      })
      // 更新所有的组件和页面
      pcList.forEach(item => {
        item.setData(newObj)
      })
    }
    function loadStore() {
      // 加入pcList,待setState的时候遍历
      pcList.push(this)
      // 每个页面或组件都在data中储存一份state的引用
      this.$state = store
      this.setData({
        $state: store
      })
    }
    function unloadStore() {
      // 从pcList中移除
      let index = pcList.findIndex(item => {
        return item === this
      })
      if (index > -1) {
        pcList.splice(index, 1)
      }
    }
    initPage()
    initComponent()
    

    使用

    首先是引入,在app.js引入store.js即可

    import './utils/store.js'

    然后使用方式,在wxml中使用

     <view>{{$state.msg}}</view>

    在js中获取state和更新state

    Page({
      //...
      func(){
        // 获取state中的user
        let storeUser = this.$state.user
        storeUser.name = 'Becky'
        // 更新state中的user
        this.setState({
          user:storeUser
        })
      }
    })

    结语

    我们实现了store功能,并实现了开头写得三个目标,所有生命周期和函数中均可使用,一行代码即可引入,使用方式和Vue一样。

    不过只是实现了最基础的store功能,但能满足目前的项目需要,若以后有其他的需求,再在这个基础上增加。

     

     

    展开全文
  • 微信小程序--实现分享功能

    万次阅读 多人点赞 2019-07-25 15:28:27
    本篇文章的目标是实现分享小程序中的单张页面给其他用户,并且打开分享后的页面拥有返回按钮. 最终的效果: 1. 封装一个分享的组件 <view class='share'> <view class='like'> ...

      本篇文章的目标是实现分享小程序中的单张页面给其他用户,并且打开分享后的页面拥有返回按钮.

      最终的效果:

     

                                                                

     

     

    1. 封装一个分享的组件

    <view class='share'>
       <view class='like'>
          <view class='iconfont icon-aixin'></view>
       </view>
       <view class='weixin'>
           <button open-type="share" class='iconfont icon-weixin'></button>
       </view>
    </view>

    页面效果如下:

                                                

    说明:

       如果想在页面上实现点击按钮分享,那么这个点击的按钮必须使用button标签,并且open-type置为share

     

    2.在想要分享的页面中引入上面组件,并在页面的js中Page所包含的对象里增加一个方法onShareAppMessage

     

    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
       news_id:12
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        
       
        
      },
    
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
    
        let url = encodeURIComponent('/packageNews/pages/news_detail/news_detail?news_id=' + this.data.news_id);
    
        return {
          title: "热点详情",
          path:`/pages/index/index?url=${url}` 
        }
    
      }
    })

     说明:

      将当前页面的路径包括参数使用encodeURIComponent进行编码并作为url的参数,path设置为小程序的首页.当我们将该页面

    分享给其他人时,他们打开的首先是首页,然后跳转到我们分享的这个页面.

     

    3.要想分享后的页面打开先进入首页再跳转到分享的页面,首页的js要做如下设置

     

    //index.js
    Page({
      data: {
      
      },
      onLoad: function (options) {
    
    
        if(options.url){
    
          let url = decodeURIComponent(options.url);
    
          wx.navigateTo({
            url
          })
    
        }
    
      }
    
    })
    

    说明:

      在onLoad的方法中先判断有没有url参数,如果有的话就使用decodeURIComponent对url解码然后跳转.由于小程序是先进入了首页然后跳转到分享页,这样便解决了分享页没有返回键的问题.

     

    结尾

    很多同学私信反馈小程序分享完毕之后,打开页面没有数据.最后总结了有以下原因:

    1. 分享按钮一定要使用button标签,并且open-type置为share

    2.被分享的那个页面请求后台接口的参数,可能是从上一个页面传递过来的.

    例如分享某个新闻详情给好友.它的底层原理就是,好友打开小程序,小程序启动后先进入首页,拿到跳转地址再跳到新闻详情页.而平时我们访问新闻详情页需要带着一个新闻id的,没有id就无法知道当前访问哪个新闻.由于分享后是直接从首页跳到详情页,没有新闻id,自然是无法获取到新闻数据.

    所以我建议先分析一下分享的那张页面是不是含有上个页面要传过来的数据,如果确实含有就能把参数挂到路径后面,再把这种带有参数的路径分享出去.如下面代码所示:

     onShareAppMessage: function () {
    
        let url = encodeURIComponent('/packageNews/pages/news_detail/news_detail?news_id=' + this.data.news_id);
    
        return {
          title: "热点详情",
          path:`/pages/index/index?url=${url}` 
        }
    
      }

    上面代码分享的是news_detail这个页面,但是这个页面需要一个news_id才能获取数据.因此在拼接url时将news_id拼接上去.

    如果还有不明白的同学可以扫下面前端技术群,有任何技术问题可以在群里面与大家相互沟通.

     

     

     

     

     

     

     

     

     

    展开全文
  • 微信小程序实现订阅信息功能

    千次阅读 2020-03-13 14:52:07
    微信小程序集成百度图像识别功能实现对上传或拍照的身份证进行扫描,并获取身份证信息。 百度端创建应用 访问网址https://login.bce.baidu.com/,选择“人工智能”--“图像识别”; 在栏目“应用列表”下...

    目录

    前言

    流程分析

    实现过程

     


    前言

    本文介绍使用订阅信息API,来实现微信小程序的订阅信息功能,集成在支付完成步骤上。

    流程分析

     

    上图是从网上找到的最详细的流程图,从图中可以分析出大概以下几个流程:

    1.用户进入“设置--消息订阅”,设置不接收消息时,则支付完成后直接跳转页面;

    2.微信版本不支持订阅信息方法时,则在支付完成后,输出错误信息并跳转页面;

    3.下发权限窗口中,不勾选“总是保持以上选择,不再询问”且点击“允许”时,则支付完成后调用后台接口下发订阅消息;如果是多模板情况(最多三个模板),要根据各模板是否勾选判断那个模板可以下发(模板未勾选时,虽然点击了允许,但返回信息是“reject”))并跳转页面;

    4.下发权限窗口中,不勾选“总是保持以上选择,不再询问”且点击“取消”时,则支付完成后直接跳转页面,不下发订阅信息;

    5.下发权限窗口中,勾选“总是保持以上选择,不再询问”且点击“允许”时,则支付完成后调用后台接口下发订阅消息;如果是多模板情况(最多三个模板),要根据各模板是否勾选判断那个模板可以下发(模板未勾选时,虽然点击了允许,但返回信息是“reject”))并跳转页面;而第二次支付完成后,不会弹出下发权限窗口,而是根据上次模板的信息进行下发(如想弹出窗口,可使用开发工具“清除缓存”);

    6.下发权限窗口中,勾选“总是保持以上选择,不再询问”且点击“取消”时,则支付完成后直接跳转页面,不调用下发订阅信息接口;而第二次支付完成后,不会弹出下发权限窗口,而是根据上次模板的信息不下发(如想弹出窗口,可使用开发工具“清除缓存”);

    实现过程

    上图为各种情况的返回数据情况,分析上面的数据,有利于理解实现代码的原理:

    1.增加公共函数,用来调用订阅信息的下发权限;

    注释:

      1)wx.requestSubscribeMessage为小程序提供的API,可点击查看详细说明;

      2)that.data.subscriptionData.subscribe_templates存放模板的信息(1-3个),然后传参给后台接口config.sendTemplateMsg,config.sendTemplateMsg该后台接口使用下发方法subscribeMessage.send(点击查看详细说明);

      3)在支付完成后,如果使用“wx.reLaunch”进行跳转,会出现无法跳转的问题,这是因为跳转到支付页面后,导致原来的页面找不到,所以这里使用“wx.redirectTo”跳转。

      Tips:对于多模板,部分模板不是即时下发订阅信息,可在调用config.sendTemplateMsg接口时 ,后台先缓存必要的信息(oppid、订单号、模板信息等),然后在小程序点击相应场景再调用后台接口下发相应的订阅信息。

    // 订阅信息的下发授权
      subscribeMessage: function(templateId) {
        let that = this;
        try {
          wx.requestSubscribeMessage({
            tmplIds: templateId,
            success(res) {
              for (let key in res) {
                if (key !== "errMsg" && key !== "errorCode") {
                  let obj = {
                    template_id: key,
                    status: res[key]
                  };
                  that.data.subscriptionData.subscribe_templates.push(obj);
                }
              }
              console.log(that.data.subscriptionData);
              // 订阅信息接口
              util.requestUrl(config.sendTemplateMsg, that.data.subscriptionData).then((res) => {
                console.log('调用订阅信息接口!');
              }).catch((errMsg) => {
                console.log(errMsg); //错误提示信息
              });
              wx.redirectTo({
                url: '../../pages/index/index'
              });
            },
            fail(res) {
              console.log(res);
            }
          })
        } catch (err) { // 当前微信版本不支持订阅信息
          console.error("subscribeMessage-err", err);
        }
      }

    2.支付完成后的操作 (只截取下发权限部分的代码);

    注释:

      1)templateId数组的数据为模板ID,可在微信公众平台手动配置获取模板 ID;

      Tips:templateId可调用后台接口获取,这样就不用每次有改动就重新修改小程序进行审核。

    // 获取下发权限
    const templateId = ['xxx', 'xxx', 'xxx'];
    let subscribeMessage = that.data.settingMsg.authSetting['scope.subscribeMessage']; // 用于判断是否禁止接收订阅信息
    if (subscribeMessage) {
      that.data.subscriptionData = {
        access_token: app.globalData.accessToken,
        openId: app.globalData.openId,
        subscribe_templates: []
      };
      // 包含总是允许、总是取消、点击允许、点击取消情况
      that.subscribeMessage(templateId);  
    } else { // 小程序设置--不允许接收订阅信息情况
      wx.redirectTo({
        url: '../../pages/index/index'
      });
    };

     

     

    展开全文
  • 微信小程序实现客服默认自动回复功能

    万次阅读 热门讨论 2018-03-22 13:42:19
    微信小程序实现客服默认自动回复功能 程序可通过以下两种方式下发客服消息:1、调用发送客服消息接口;2、使用公众平台网页版客服工具;这里主要讲第1种的做法。 1、小程序管理员的后台配置 登录小程序,在...

    微信小程序实现客服默认自动回复功能

    程序可通过以下两种方式下发客服消息:1、调用发送客服消息接口;2、使用公众平台网页版客服工具;这里主要讲第1种的做法。

    1、小程序管理员的后台配置

    登录小程序,在“设置-开发设置-消息推送”启用消息推送功能并完成相关信息配置。
    URL(服务器地址):用url访问文件名地址

    Token: 自己随便起个名字就行英文数字3-32字符到时后台验证一样就行了;

    EncodingAESKey:直接用自动生成即可

    配置完成后,微信服务器会访问服务器地址检验是否能访问到。如果访问失败获取返回数据不正确,将提示token校验失败(也就是说上面配置的URL是外网可以访问的微信服务器要先去我们自己配的URL中的方法去检验token是否相同)。

    2、小程序前端

    小程序前端加一个客服按钮就可以了

    <contact-button  size="30" session-from="weapp" 
    class="guest-button"></contact-button>

    3、Token验证和客服消息的接收

    后台我主要是由java编写完成。
    
    /**
         * 微信小程序消息验证和配置
         * @data:2018/2/06
         * @return
         * @throws Exception 
         */
        public String getProcessRequest() throws Exception{
            boolean isGet=request.getMethod().toLowerCase().equals("get");
            System.out.println("方法是-------"+isGet);
            if(isGet){//首次验证token
                isProcessRequest();
            }else{// 进入POST聊天处理  
                System.out.println("进入了聊天界面");
                if(checkSignature()){
                    // 接收消息并返回消息  
                    acceptMessage();  
                }  
            }
    
            /*for (String string : list) {
                conbineStr+=string;
            }*/
            return null;
        }
    
    
    /**
         * 验证消息推送Token
         */
        public void isProcessRequest(){
            String signature=request.getParameter("signature");
    
            String timestamp=request.getParameter("timestamp");
            String nonce=request.getParameter("nonce");
            String echostr=request.getParameter("echostr");
            String token="ulin5";//要和我们小程序管理员配置的一样才行
              List<String> params = new ArrayList<String>();  
                params.add(token);  
                params.add(timestamp);  
                params.add(nonce);  
                // 1. 将token、timestamp、nonce三个参数进行字典序排序  
                Collections.sort(params, new Comparator<String>() {  
                    @Override  
                    public int compare(String o1, String o2) {  
                        return o1.compareTo(o2);  
                    }  
                });  
                // 2. 将三个参数字符串拼接成一个字符串进行sha1加密  
                String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2));  
                if (temp.equals(signature)) {  
                    try {  
                    //通过算法计算后相等响应echostr给微信服务器
                        response.getWriter().write(echostr);  
                        System.out.println("成功返回 echostr:" + echostr);  
    
                    } catch (IOException e) {  
                        e.printStackTrace();  
                    }  
                }  
                System.out.println("失败 认证");
        }
    
    /**
         * 聊天处理方法
         * @param request
         * @param response
         * @throws Exception 
         */
        public void acceptMessage() throws Exception{
            com.alibaba.fastjson.JSONObject json = null;
            String openid=request.getParameter("FromUserName");//这是通过通过get方式去url 拼接的键值对,post方式取不到值。
            request.setCharacterEncoding("UTF-8");         //返回页面防止出现中文乱码
            BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));//post方式传递读取字符流
            String jsonStr = null;
            StringBuilder result = new StringBuilder();
            try {
            while ((jsonStr = reader.readLine()) != null) {
            result.append(jsonStr);
            }
            } catch (IOException e) {
            e.printStackTrace();
            }
            reader.close();// 关闭输入流
             json = com.alibaba.fastjson.JSONObject.parseObject(result.toString()); // 取一个json转换为对象
            String jsonStrs="{\"touser\":\"oNrqO4jET7YbGXdFcGWO-m-94heE\",\"msgtype\":\"text\",\"text\":{ \"content\":\"Hello World\"}}";
          // jsonStrs=new String(jsonStrs.getBytes(),"UTF-8");
            String token=AccessTokenUtil.getWxAccessToken();
          String url="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token;
          JSONObject jsonInfo = null;
            url=url.replaceAll("\"", "\\\"");  
            //jsonInfo = CommonUtil.httpsRequest(url, "POST", jsonStrs);
            PrintWriter out=null;
            BufferedReader in=null;
            String result1="";
            try {
                URL url1 = new URL("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token);
    
                HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
                connection.setDoOutput(true);
    
                connection.connect();
    
                OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
                writer.write(jsonStrs);
                writer.flush();
    
                InputStreamReader reader1 = new InputStreamReader(connection.getInputStream(),"UTF-8");
                BufferedReader breader = new BufferedReader(reader1);
    
                StringBuffer strb = new StringBuffer();
                String str = null;
    
                while (null != (str = breader.readLine())) {
                    strb.append(str);
                }
    
                System.out.println(strb.toString());
    
                writer.close();
    
                reader.close();
                breader.close();
    
                connection.disconnect();
    
            } catch (Exception e) {
                System.out.println("发送post请求异常");
                e.printStackTrace();
            }finally{
                if(out!=null)out.close();
                if(in!=null)in.close();
            }
        }

    然后就完成啦^_^

    展开全文
  • 在微信小程序实现抽奖功能

    万次阅读 2019-08-06 12:50:00
    本教程是基于 “apifm-wxapi” 模块,教你快速实现程序开发,所以你可能需要先了解以下知识点: 《创建 HelloWorld 项目》 《使用 “apifm-wxapi” 快速开发小程序》 《免费注册开通后台,获得专属域名》 本案例中...
  • 程序云开发实现上传图片功能

    万次阅读 多人点赞 2019-04-04 18:53:29
    1、小程序上传图片功能实现需要注意以下几个点: (1)图片最多上传9张(默认) (2)上传后的图片会生成一个临时的地址,用过这个临时地址将图片上传到数据库 (3)图片保存的位置是在云开发控制台的 本地存储中 ...
  • 基于云开发的小程序评论功能实现

    千次阅读 2019-06-09 22:19:32
    对于文章评论,新建数据库集合来保存评论内容及相关书籍,有以下数据库字段: var args={ cNickName: that.data.userInfo.nickName, cAvatarUrl: that.data.userInfo.avatarUrl, cOpenId: app.globalData....
  • 微信小程序支付功能后台PHP实现

    千次阅读 多人点赞 2018-03-29 21:23:34
    这是我博客关于微信小程序...主要进阶来讲讲微信支付功能实现,因为官方api给的资料太少,要实现起来还是得靠自己慢慢摸索,这样很费时间,因此我在这里将自己的方法记录下来,希望能帮助大家。1.前期准备首先要...
  • 微信小程序-input实现模糊查询功能

    千次阅读 热门讨论 2019-10-18 16:11:08
    微信小程序-input实现模糊查询功能实现模糊查询功能之需求效果图实现踩的坑 实现模糊查询功能之需求 今天在做小程序的时候,遇到一个需求是对列表进行模糊查询。对于模糊查询,一般都是传关键字给后端,由后端来做...
  • 用C语言实现Ping程序功能

    千次阅读 2016-07-04 22:24:20
    在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能程序。  ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,...
  • 在准备开发这个功能之前,请确保你已经阅读过云开发文档和以下相关官方文档。 模板消息 获取AccessToken 发送模板消息 云函数定时触发器 我们来设定一个需求场景。以小程序【抽奖助手】为例,用户参与抽奖后,需要在...
  • 2、会员管理3、服务或产品预订小程序以下几个方面帮助门店实体:1、招揽过路人进店;2、增加老顾客的粘度(积分制度),促使他们二次进店;3、使顾客预付款(会员充值),进一步加大粘度;4、预订业务小程序截图:...
  • 具有在线支付功能的, 都会使用wx.requestpayment()这个接口。 好多学员反馈说这个接口很难, 今天子恒老师跟你分享一下, 怎么使用wx.requestpayment实现微信支付。 一、 使用wx.requestpayment实现微信...
  • 程序实现原理解析

    万次阅读 多人点赞 2017-03-26 22:04:43
    概述作为一名前端开发,如果你还停留在应用开发层面,那你就OUT了,快来跟我一起探讨下小程序框架本身底层实现的一些技术细节吧,让我们从小程序的运行机制来深度了解小程序。 小程序是基于WEB规范,采用HTML,CSS和...
  • 4. 编写程序实现以下功能: 利用匿名管道实现父子进程间通信,要求 父进程发送字符串“hello child”给子进程; 子进程收到父进程发送的数据后,给父进程回复“hello farther”; 父子进程通信完毕,父进程依次打印...
  • 程序中有很多好用的API,整个项目我们是用vue实现的,使用小程序的内嵌网页功能完成交互。 使用小程序的&amp;lt; web-view &amp;gt;标签将vue项目在小程序中运行。大概的背景就是这样。接下来介绍具体...
  • 前置知识可先阅览以下博文 https://blog.csdn.net/xiaochun365/article/details/76546585 https://blog.csdn.net/xiaochun365/article/details/76546585   先在需要分享的页面的index.js里开启分享功能  ...
  • 本教程是基于 “apifm-wxapi” 模块,教你快速实现程序开发,所以你可能需要先了解以下知识点: 《创建 HelloWorld 项目》 《使用 “apifm-wxapi” 快速开发小程序》 《免费注册开通后台,获得专属域名》 本案例,...
  • 要求: (1)每个学生的基本信息包括:学号,姓名,性别,出生日期,所属学院,专业,年级等...按学号查询 (用二分查找实现以下操作) C.提供模糊查找的功能,如输入“刘”,可以查找到所有姓“刘”的学生的基本信息。
  • 微信小程序如何通过button按钮实现分享(转发)功能 导读:微信小程序通过button按钮实现分享(转发)功能 有两种方式,一种是页面内按钮分享,一种是菜单转发.下面具体为大家解答。... 微信小程序通过button按钮...
  • 本教程是基于 “apifm-wxapi” 模块,教你快速实现程序开发,所以你可能需要先了解以下知识点: 《创建 HelloWorld 项目》 《使用 “apifm-wxapi” 快速开发小程序》 《免费注册开通后台,获得专属域名》 功能说明...
  • 以下程序功能是从键盘输入一行字符,分别统计出其中英文字母(大写或小写)、空格、数字(0-9)和其它字符的个数。请根据提示补充函数count的具体实现代码。请不要改变已经给出的代码。 import java.util.Scanner; ...
  • 需要求 3 个长方体的体积,请编写一个基于对象的程序
  • windows程序自动锁屏功能实现

    千次阅读 2008-02-21 00:14:00
     A: 其实很简单,参考一个api函数就可以了:GetLastInputInfo,以下是参考代码演示程序在你10秒内没有任何鼠标键盘活动既最小化,最小化后晃动鼠标即可复原using System;using System.Collections.
  • **要求:**使用for循环编写程序实现以下功能:计算1-1/3+1/5-1/7+…-1/99+…。 **输入:**输入该表达式的项数n。例如,如果输入2,则计算1-1/3;如果输入5,则计算1-1/3+1/5-1/7+1/9。 **输出:**计算结果保留2位...
  • 本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能,必须在自己的微信中添加微信号xiaoice-ms(微软的微信机器人)才能实现,直接复制代码运行之后扫一扫二维码即可,经过测试,该程序能够保持...
  • 要求用成员函数实现以下功能: 1. 由键盘分别输入3个长方柱的长、宽、高; 2. 计算长方柱的体积; 3. 输出3个长方柱的体积。 请编程序,上机调试并运行。 代码块: #include &lt;iostre...
  • 需求:有一个做好的微信公众号项目(vue框架搭建的),还要做一个小程序版的,为了减少开发工作,全部使用web-view嵌入网页。...以下是代码部分 一、web-view内嵌公众号网页中添加代码 1.引入js &l...
  • 微信小程序在12月21日发布了新版本的开发工具,并在官网公布新增以下功能:1、分享可以分享小程序的任何一个页面给好友或群聊。https://mp.weixin.qq.com/debug/wxadoc/dev/api/share.html?t=20161221示例代码:Page...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,126,572
精华内容 450,628
关键字:

以下程序实现的功能是