uni-app微信公众号web JS-SDK开发之一接入

企业微信-新版WECOM-JSSDK-分享消息到当前会话-sendChatMessage-(fail_no permission与errMsg: “sendChatMessage:no permis) 企微分享侧边栏,增加小程序的商品、活动落地页的分享快捷发送分享,点击 【发送】可快速发送对应的小程序商品链接给客户。4.1:首先要先看企业微信的官方文档,现在有新版与旧版之分,其实也差不多的,新版是ww.xxx。4.2:我当时遇到的问题,ww.sendChatMess分享报错信息如下:就是权限配置的问题了。旧版是wx.xxxx,如下图, 阅读详情

目标

完成基于uni-app H5平台上微信公众号JS-SDK的接入

uni-appH5接入JS-SDK

接入说明

1,环境说明

  1. vue版的uni-app环境,使用npm来管理uni-app具备更好的灵活性,不用限制在HBuilder上开发,如果不是用npm管理,那么需要在html中导入js
  2. (可选)微信公众号账号,这不是必需的,因为微信提供有测试号的沙盒环境,因此,具有个人微信号在开发阶段也是可行的
  3. (可选)公网web地址方便公网测试,但基于内网调试,可以形成调试闭环,但需要能够访问外网的能力,因为要访问微信。

2,JS-SDK接入说明

先说一下整体的接入概要,让整个框架有个思路

  1. JS-SDK本质是通过js注入完成的,为web页面提供一些基于微信客户端运行时的便捷功能,比如:图片上传、微信登录、分享、地理位置、扫一扫、支付等,总的来说就是面向手机底层的一些应用。我们接入JS-SDK的目的就是为了让H5网页,具有像"App"一样的功能。
  2. JS-SDK中的功能是受微信限制的,这里JS-SDK的功能方法,就是微信文档中的“接口”,所有接口都是受微信管控的,这也能理解,比如像支付这类,肯定就需要与微信产生通讯联系。这里的“限制”是广义的,也包含一些无限制的接口
  3. 微信“限制”了接口,那是为了考虑用户安全,需要在微信公众账号配置“JS安全域名”,配置了此域名,H5页面才能接入JS-SDK,作为微信服务商也就知道了你是谁,所以当H5被打开时,微信服务商知道“页面的提供者是谁(这里的主体是公众号)”,同时也知道是谁打开的H5页面(微信用户)。基于这点原理,微信端的H5页面打通了用户与服务商标识的通道,极大提升了便捷性。
  4. 微信公众号的登录逻辑,登录是基于OAuth2的第三方授权登录逻辑来实现的。,至于原理稍后再说,这里只需要注意一点,第三方授权登录会重定向到公众号H5页面,不支持基于ajax的方式

3,资源准备

本文只是辅助教程,所以还是需要一些资源

开始接入

前面说了那么多废话,终于要看是实干了。

本人前后端开发框架

  • 前端uni-app
  • 后端maven、Spring Boot

第一步,下载web开发者工具

在上面的连接地址中,下载web开发者工具,方便预览

第二步,uni-app安装JS-SDK并初始化(前端)

  1. 安装
npm install weixin-js-sdk --save # --save将依赖保存到package.json中
  1. 初始化(这里是指初始化JS环境,不是初始化配置)
import wx from 'weixin-js-sdk';
//这里将wx重命名为wxmp的全局变量,目的是防止与uni-app等发生变量冲突。
window.wxmp = wx

这里说明一下wxmp.config方法是JS-SDK的功能初始化,其中涉及到AppId、加密算法、签名等,所有config方法中的参数我们是通过服务端获取的

第三步,初始化微信公众账号沙盒

点击上面的微信公众平台接口测试帐号申请进入沙盒申请

授权登录后如下:
在这里插入图片描述

配置JS安全域名(重要、重要、重要)

在这里插入图片描述
由于沙盒环境,可以配置内网、localhost地址

第四步,后端接入微信公众号,实现wx.config配置参数(后端)

1. 提供jsSdkConfig接口(公共接口)
import me.chanjar.weixin.common.bean.WxJsapiSignature;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
@RestController
@RequestMapping("/openApi/comm")
public class JsSdkRest {
    @Resource
    private WxMpService wxMpService;

    @GetMapping("jsSdkConfig")
    @GetMapping("jsSdkConfig")
    public RestObjectResponse<WxJsapiSignature> jsSdkConfig(@ApiParam("url包含查询参数") @RequestParam("url") String url) throws WxErrorException {
        return RestObjectResponse.ok(wxMpService.createJsapiSignature(url));
    }
}

RestObjectResponse你应该没有,自行替换

2. 引入公众号对接依赖

WxMpService是基于开源的公众号接入库maven依赖如下:

<dependency>
   <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-mp</artifactId>
    <version>3.9.0</version>
</dependency>
3.配置WxMpService Bean

我没有用starter版,习惯自行配置bean,这样更灵活

@Configuration
public class WxConfiguration {
    /**
     * 微信公众号配置
     * @return
     */
    @Bean
    public WxMpService wxMpService(){
        WxMpServiceImpl wxMpService = new WxMpServiceImpl();
        WxMpDefaultConfigImpl conf = new WxMpDefaultConfigImpl();
        conf.setAppId(ProjectWxMpConfigBean.INSTANCE.getAppId());
        conf.setSecret(ProjectWxMpConfigBean.INSTANCE.getSecret());
        conf.setToken(ProjectWxMpConfigBean.INSTANCE.getToken());
        conf.setAesKey(ProjectWxMpConfigBean.INSTANCE.getAesKey());
        wxMpService.setWxMpConfigStorage(conf);
        return wxMpService;
    }
}

第五步,前端调用配置接口初始化配置

获取配置接口

其实这没啥好说的,但是有一点需要注意,那就是获取配置接口需要传入url并且包含查询参数

参考代码:

let getJsSdkConfig = ()=>{
    let url = escape(window.location.href)
    return PFApi.apiGet(
        {
            uri:'/openApi/comm/jsSdkConfig'
        },{url:url})
}
export const ApiComm = {
    getJsSdkConfig:getJsSdkConfig
}

这里顺便啰嗦一下url组成
在这里插入图片描述
红框中每个属性自行理解,肯定是有差异的。

js配置
wxmp.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

jsApiList,要用到的wx方法都需要配置在这里面,字符串数组,方法名

第六步,确认

刷新页面出现下面的弹框说明配置ok,如果报错,根据错误码在微信文档去找

在这里插入图片描述

【企业微信】JS-SDK引入实现向企微群聊发送图文消息 企业自建应用商城需要实现分享商品链接到群聊。(标题/描述/图片/点击跳转商品链接H5详情页) 阅读详情

相关推荐

企业微信wecom/jssdk的使用(入门)

本文记录了在企业微信H5项目中集成JS-SDK的经验总结,主要涉及图片上传和扫码功能实现。前端基于uni-app开发,后端使用FastAdmin(ThinkPHP5)。实现过程包括:1)安装SDK并进行应用身份鉴权注册;2)后端签名算法实现,获取access_token和jsapi_ticket;3)前端调用chooseImage等接口。遇到的典型问题包括"invalid url domain"本地调试报错和签名无效,需特别注意URL域名配置和签名算法准确性。最后展示了前端成功调用图片选

hj1043的博客 2627

企业微信应用开发(JS-SDK网页式开发)第二集:JS-SDK鉴权

企业微信的api方法,需要先鉴权成功才能使用; 只需要在首页鉴权一次就可以,其余页面都可以直接使用api方法; 企业微信JS-SDK:是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。o((⊙﹏⊙))o 通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验。 准备工作:获取corpid,corpsecret corpid: 企业ID:获取方法☛.

weixin_41618917的博客 5760

uni-app微信公众号web JS-SDK开发之二授权登录

实现微信登录 先看一下微信文档了解一下:网页授权 回调域名配置(必须配置,是页面不是接口) 登录流程说明 看过文档之后,想必都知道了登录的流程。这里需要注意的是

mt23 912

vue自建h5应用,接入企业微信JDK(WECOM-JSSDK),实现跳转添加好友功能

vue自建h5应用,接入企业微信JDK(WECOM-JSSDK),实现跳转添加好友功能。1、使用vue开发了一套h5页面的项目2、这个h5链接是在企业微信里某个地方打开的3、打开页面的时候有一个好友列表,点击好友列表某一条复制手机号跳转到企业微信添加好友页面。

wangjie的博客 8978

uni-app中H5页面通过web-view跳回小程序的完整解决方案(解决wx.miniProgram undefined问题)

本文详细解析了uni-app中H5页面通过web-view跳回小程序时遇到的'wx.miniProgram undefined'问题,提供了从引入微信JS-SDK、配置页面权限到实现跳转逻辑的完整解决方案。特别针对常见错误如签名生成、URL编码等问题给出实用技巧,帮助开发者高效实现H5与小程序的平滑跳转。

weixin_28309723的博客 496

微信开发 JS-SDK 6.0.2 经常遇到问题总结

本篇文章主要介绍了"微信微信JS-SDK 6.0.2 遇到问题 ",主要涉及到微信微信JS-SDK 6.0.2 填坑笔记 方面的内容,对于微信微信JS-SDK 6.0.2 填坑笔记 感兴趣的同学可以参考一下。

uniapp微信授权+接入JS SDK

uniapp集成了wx实例,引入<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>就不能再使用wx.config配置,可以使用jWeixin.config。微信官网授权文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html。回跳地址的域名需和微信后台配置的域名一致,否则会报错。

m0_55452200的博客 2146

Renesas:定时器输入捕获

一、PWM输入捕获 1、Smart Configurator配置 注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获! 2、脉冲宽度的获取 如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。 若无法进入中断,可查看:Renesas:配置中断的常规流程 (1)中断方式(Smart Configurator生成的代码) #pragma interrupt r_Config_TAUB0_0_i...

不吃鱼的猫的博客 2479

uni-app开发微信公众号(H5)时,实现扫码功能

在uni-app官网上发现uni-app不支持H5扫码功能。 但是下面的提示说明可以通过微信的JS-SDK实现扫码功能 JS-SDK说明文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 步骤一:引入sdk 这里有两种引入方式: 1.按照文档的方法,下载js文件,直接引入到项目里 2.通过npm安装 npm install jweixin-module --save // 按需引入 import jwe

Mister_why的博客 3654

Tushare Pro的安装使用——“抱歉,您没有访问该接口的权限,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108”问题

最近做毕设关于量化交易的, 因此一直使用tushare作数据源,但是过程中到一些问题,因此这里写篇文章,供大家一起交流下。 Tushare简介 Tushare是一个免费、开源的python财经数据接口包。拥有如股票、基金、期货等行情数据,公司财务、基金经理等基本面数据,以及债券、外汇、行业、大数据、区块链。Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,因此非常方便...

sinat_40875078的博客 1万+

Android 12高通thermal-engine调试实战:如何快速开启debug日志并解决CPU降频问题

本文详细介绍了Android 12高通thermal-engine的调试实战,包括如何快速开启debug日志、解读关键日志信息以及解决CPU降频问题。通过优化配置文件和调整温控策略,开发者可以有效提升设备性能,避免因温度管理导致的性能瓶颈。

i3j4k5的博客 304

uni-app 开发微信公众号(H5)分享 支付 JSSDK 的使用

UNI-APP 开发微信公众号(H5)分享 支付 JSSDK 的使用 什么是微信JSSDK ? 开发微信公众号的嵌入网页。想要拥有在微信浏览器的功能,就必须使用 wx JSSDK 来获取基础能力,从而实现业务。 使用范围 ? 微信公众号的操作,app 、微信小程序 有单独的方法来设置功能,此jssdk 只适用于 微信公众号。 前期准备? 公众号需要申请,申请特定的能力。最重要的是最要做一步参数处理。 流程如下: 网页向java-web请求微信分享,然后通过公众号的appid和secret获.

以后永远的博客 1万+

西门子840D新建项目

1、需要一个32位的WIN7或者XP系统,并且已经在系统中安装完成西门子840Dsl开发包和VS2008。(我采用的是XP系统虚拟机) 2、在开始->所有程序找到如下位置 3、在这个位置打开Visual Studio 4、文件->新建->项目 名称和位置都可以随意更改,点击确定。 5、在左侧选择第二个选项进入下面的界面 点击“Add Screen”按钮 可以修改“class name”然后点击“OK”返回上一个界面,再点击“Add Form” 可以修...

qq_36987047的博客 1861

uni-app快速开发模板:助力高效项目构建的技术探索

本模板是一个经过5年web前端开源社区沉淀的uni-app项目架构模板,专为追求高效开发、快速迭代的团队或个人开发者设计。模板不仅涵盖了基础的页面架构和样式配置,还集成了众多高级功能和实用组件,包括但不限于瀑布流列表、防抖音滑动视频、地区选择、弹窗输入框、富文本编译等,同时提供了接口请求、支付、分享、登录(含小程序和公众号)等完整的业务逻辑处理,极大地简化了项目初期的基础搭建工作。本uni-app快速开发模板的推出,无疑为uni-app开发者提供了一个强有力的支持。

chenchuang0128的博客 2602

faster lio 回环 加入GTSAM优化的记录

对Faster lio 加入回环、gtsam优化,在室外建图遇到的问题和过程

Nico_jion的博客 2596

使用JAVA 的 POI 库 将DOC文件转为DOCX文件

java使用POI库,将doc文件转为docx文件

qq_45808266的博客 5702

使用uni app实现H5微信分享功能

一、描述 要实现自定义微信分享功能,需要使用到微信官方提供的 js-sdk,微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包,通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。 二、准备工作 下载 HBuilderX 并安装 j...

xy1073028328的博客 1万+

PCL 动态半径滤波【2025最新版】

使用PCL实现的2022年最新SCI论文——【Design of Dust-Filtering Algorithms for LiDAR Sensors Using Intensity and Range Information in Off-Road Vehicles】 一文中提出用于自动驾驶点云剔除粉尘、雨雪等影响因素导致的噪声点滤波算法。

点云侠的博客 1471

uni-app项目架构模板详细介绍

这是一个的开源uni-app快速开发模板项目,专门为有一定uni-app开发基础(建议1年以上经验)的程序员设计。项目名称为"uniapp项目架构模板(适合快速开发,请下载示例)示例",版本为1.1.0。该项目是一个(微信公众号、普通H5)项目提供了完整的开发架构、常用组件库、SDK封装和业务模板,旨在帮助开发者快速搭建跨平台应用。

chenchuang0128的博客 704

【LAMMPS学习】八、基础知识(2.1)2D模拟

此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。LAMMPS 源代码分发的examples目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。

荷塘阅色 1249

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

uni-app 手机端定位问题

uni-app定位链接 主要遇到的问题,app上android无法获取定位信息,ios可以,模拟器上都可以获取定位,H5浏览器中获取定位同样失败 做法: uni.getLocation({ type: 'wgs84', geocode: true, success: function (res) { console.log('当前位置的经度:' + res.longitude); console.log('当前位置的纬度:' + res.latitud

Silence_Sep的博客 9274

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从零开始开发Uni-app+H5公众号全教程

本教程已完整覆盖Uni-app+H5公众号开发的核心流程与扩展功能

HHH1433223的博客 1671

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

uni-app+OpenClaw实现微信/钉钉/飞书本地AI智能体接入

AI智能体本地化运行是保障数据隐私、低延迟响应与高效开发的关键范式。其核心原理在于将大模型能力下沉至终端,通过进程间通信(如localhost HTTP)替代云端调用,从而规避网络合规风险与高延迟瓶颈。技术价值体现在对用户数据主权的尊重、毫秒级交互体验及所见即所得的调试效率。典型应用场景包括金融合规实时语义审查、工业设备PLC本地直连巡检、教育场景个性化习题生成等。本文聚焦于使用uni-app构建跨平台IM协议桥接层,打通OpenClaw与国内主流IM(微信、钉钉、飞书)的消息通路,解决原生不支持问题。

weixin_30788619的博客 494

uni-app 微信公众号(H5)自定义分享,禁止分享

先放一个官方文档的链接 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#48 上代码: 禁止分享: async hideShare() { let locationHref = {url: window.location.href}; let info = await r...

Amen的博客 7602

uni-app开发微信公众号H5:微信开发者工具调试实战指南

跨端开发框架解决了多平台复用的痛点,而微信公众号H5作为流量入口,依然占据重要地位。在微信生态内开发H5页面,需要理解OAuth2.0授权、JS-SDK签名等机制,并借助微信开发者工具模拟内置浏览器环境进行调试。然而,很多开发者在配置域名、联调接口时容易踩坑。本文基于实际项目经验,系统梳理了从项目搭建、公众号后台配置到微信开发者工具联调的全流程,并针对redirect_uri非法、invalid signature等常见报错给出排查方法,帮助开发者快速上手uni-app与公众号H5的组合开发。

weixin_34128839的博客 317

uni-app心得

是一个使用 Vue.js (opens new window)开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。现在最火的前端框架就是VUE,而现在的前端有很多用户端,比如H5,小程序,微信公众号等等,后台我们可以直接采用SpringCloud开发,但是前端的多个用户端我们就需要用各种语言去编写,比如微信小程序、微信公众号以及其他小程序都需要我们去重新开发,时间消耗很大。

2301_78049867的博客 93
上一篇: Frp轻松解决内网访问方案
下一篇: Spring Boot集成Guava EventBus并注入Bean
mt23
博客等级 码龄12年 33粉丝 91原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值