Uniapp打包H5端实现微信分享好友、微信朋友圈

uniapp - APP分享到微信,通过h5页面跳转至对应的app页面 从app分享到微信再到微信网页跳转至app对应页面,其中需要注意的是在微信开放平台和微信公众平台的相关配置,看配置是否成功可以在微信开发者工具里测试,把debug模式打开,就可以看到对应的日志反应是否是配置成功了的。还有各个环节的传递参数,记得存取好。uni-app中使用wx-open-launch-app-优快云博客。 阅读详情

一.需求

  • 使用Uniapp框架打包的H5端项目,在微信浏览器中(通过公众号或将H5地址收藏后通过收藏)打开,需要实现分享功能(通过点击微信右上角按钮) & 分享后的页面依旧可以被多次次分享;
  • 注意:实现该功能最重要的是对细节的把握,将每一个细节弄清楚则这个需求就比较容易,反之,存在卡点;
  • 效果图-参考uniapp H5端设置分享卡片中取的截图
    在这里插入图片描述

二.细节问题

2.1.微信公众平台

  • 打开微信公众平台,以公众号的方式进行登录
  • 配置1:在“【设置与开发】 —> 【账号设置】 —> 【功能设置】 —> 【JS接口安全域名】”中设置;
  • 配置2(这个配置个人不确定是否一定要配置,因为自己没有公众号的登录权限,当时没有将IP删除进行实践,但最好也配置上):在【设置与开发】→【开发接口管理】→【基本配置】→【IP白名单】填写自己服务器的IP;

2.2.签名问题

  • 一定要让后台进行检查,确保签名逻辑的正确性。签名相关的会在下方实现方案中具体提及;
  • 检验签名正确性的地址-微信 JS 接口签名校验工具;

2.3.Ios跟Android传递参数的差异

  • 具体细节在下方实现方案中提及;

2.4.测试环节

  • 建议方案:将H5的链接通过微信进行收藏,然后通过收藏来打开;

三.实现方案(代码环节)

3.1.引入微信JS-SDK

  • 在Uniapp的项目中添加:npm i weixin-js-sdk

3.2.封装一个js类(如:wechatH5Share.js)

// 方法一:判断当前web浏览器是否是微信环境
function isWeChatBrowser() {
	// 获取 userAgent 信息
	const userAgent = navigator.userAgent.toLowerCase()
	// 检查是否包含 'micromessenger' 字样
	return userAgent.indexOf('micromessenger') !== -1
}

// 方法二:判断设备OS类型
const getDeviceOS = () => {
	const userAgent = navigator.userAgent
	if (/android/i.test(userAgent)) {
		return 'Android'
	} else if (/iPad|iPhone|iPod/.test(userAgent)) {
		return 'IOS'
	} else {
		return 'unknown' // 无法确定或非移动操作系统
	}
}

import wx from 'weixin-js-sdk'

//根据个人封装的代码来进行调整
import {
	xxxShare
} from '@/config/api.js';

// 方法三:处理微信分享事件(这里的细节在3.3中提及)
const handleWechatShare = async (shareInfo = {}) => {
    //分析1:3.3中提及
	// 1、向后端请求微信配置信息(目的是为了获取签名等信息 来初始化微信sdk的权限验证信息)
	let url = encodeURIComponent(location.href.split('#')[0]) // 只用#之前的内容
	
    //分析2:3.3中提及
	if (getDeviceOS() == 'IOS') {
		// ios手机会把首次进入的url当做wx.config中的realAuthUrl,所以需要在入口文件将该链接存下来 而不能是当前页面的链接
		var urlInfo = uni.getStorageSync("firstVisitUrl") // 记录首次访问地址
		let t = urlInfo.split('#')[0]
		url = encodeURIComponent(t)
	}
	
    //分析3:3.3中提及
	const data = await getWechatSDKConfig(url) // 调用后端接口 获取签名等参数信息
	
    //分析4:3.3中提及
	let wxConfig = {
		// debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
		appId: data.appId, // 必填,公众号的唯一标识
		timestamp: data.timeStamp, // 必填,生成签名的时间戳
		nonceStr: data.nonceStr, // 必填,生成签名的随机串
		signature: data.signature, // 必填,签名,见附录1 [一定要按照文档上面,让后端实现]
		// surl: data.url, //自己添加的,debug为true的时候可以网页打印出对应的URL是否正确
		jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'] // 必填,需要使用的JS接口列表
	}

	//分析5:3.3中提及
	// 2、注入权限验证信息,初始化权限信息(目的是为了能够调用微信的相关api)
	wx.config(wxConfig)
    //分析6:3.3中提及
	// 3、初始化微信自定义分享信息(目的是为了在用户点击右上角分享的时候,把分享的内容从链接 变成 自定义内容的卡片)
	initWechatShareData(shareInfo)
}

// 初始化微信自定义分享信息
const initWechatShareData = (shareInfo = {}) => {
	// wx.config没有success回调事件,通过ready接口保证后续代码都是在config执行成功后再执行的;
	wx.ready(() => {
		// uni.$u.toast(JSON.stringify(shareInfo))
		// 自定义分享朋友信息
		wx.updateAppMessageShareData(shareInfo)
		// 自定义分享朋友圈信息
		wx.updateTimelineShareData(shareInfo)
	})

	// 通过error接口处理config失败的情况
	wx.error(function(res) {
		// uni.$u.toast('分享失败,请稍后再试' + res.errMsg)
	})
}

const getWechatSDKConfig = async (targetUrl) => {
	try {
		let params = {
			url: targetUrl
		};
		let res = await xxxShare(params);
		return res;
	} catch (e) {
		throw e;
	}
};

export {
	isWeChatBrowser,
	handleWechatShare
}
  • 将上方js文件在main.js进行配置方便全局调用
  • 具体页面调用示例(假设在onLoad回调中调用),对于在被分享的页面也实现分享,确保下方配置在被分享页设置了即可。
const appMessage = {
								title: '自定义标题',
								desc: "自定义描述",
								link: `${this.自定义的域名地址字段}#/pagesA/B/C?key1=${value1}&key2=${value2}`,
								imgUrl: this.imageUrl,
								success: () => {},
								fail: (err) => {}
							}
							this.$wechatH5Share.handleWechatShare(appMessage)

3.3.js类中的细节

  • 分析1和分析2,分析1是适用于Android手机的微信浏览器打开的情况下,分析2是Ios手机打开的,我们需要记录首次访问地址,pages.json中配置的应用启动页中去执行保存的逻辑,如:
onLoad() {
	uni.setStorageSync("firstVisitUrl", location.href) // 记录首次访问地址
},
  • 分析3:跟后台约定的方法,参数为url,该方法的逻辑实现让后台去查看附录1-JS-SDK使用权限签名算法实现
  • 分析4:参数中左侧key的和jsApiList对应的值保持不变,右侧根据后台返回的来调整;
    • 后台的逻辑一定要验证,确保其正确性;
    • 后台的逻辑一定要验证,确保其正确性;
    • 后台的逻辑一定要验证,确保其正确性;
  • 分析5和分析6:固定写法,cv即可;

四.总结

  • Uniapp打包H5端实现微信分享好友、微信朋友圈的需求实现重点在于细节,希望能给初次接触该需求的同学节省时间,若有疑问,欢迎留言。

五.参考资料

UniApp跨端分享功能全解析:从API调用到实战优化 在移动应用开发中,分享功能是连接用户与社交网络的关键桥梁,其本质是通过调用系统或平台的原生能力,实现内容在不同应用间的传递。其技术原理在于对底层原生API(如iOS的UIActivityViewController、Android的Intent以及微信小程序的转发接口)进行统一封装与适配。这一功能的技术价值在于提升用户活跃度与内容传播效率,是应用增长的重要引擎。在跨端开发框架UniApp中,实现分享功能需要深入理解各平台(微信小程序、App、H5)的底层机制差异,并妥善处理图片路径、参数传递等常见问题。本文 阅读详情

相关推荐

uniapp - 微信H5页面深度跳转APP商品详情页的完整实现方案

本文详细介绍了在uniapp框架下实现微信H5页面深度跳转APP商品详情页的完整方案。通过配置微信开放平台、使用wx-open-launch-app标签以及处理App端参数,解决跨平台跳转的技术难点,提升用户体验和转化率。

weixin_29227425的博客 263

uniapp微信公众号h5端分享

uniapp微信公众号分享 好友 、朋友圈

章小鱼的博客 9158

uni-app - H5 公众号网页分享到微信朋友圈 / 转发分享给朋友好友 / 分享到手机 QQ / 分享到 QQ 空间,给微信分享卡片设置图标、标题、描述文字等(JS-SDK 通用解决方案放心用)

uniappH5微信浏览器分享到朋友圈设置分享图标,uniapp,h5微信如何分享页面,完整设置分享链接图片简介,Uniapp发布为H5端时如何实现微信分享给好友及分享到朋友圈功能,如何把手机移动端网页设置成可以分享到朋友圈?H5网页怎么分享到微信、朋友圈、QQ和微博里,手机网页实现微信分享,分享朋友圈功能,uniappH5网站在微信浏览器中进行分享、分享朋友圈功能,uniappH5微信公众号分享设置标题描述logo图标,uniappH5网页微信分享自定义标题内容图片,uniappH5微信分享API

🏆 前端领域优质创作者 1万+

UniApp中实现微信分享功能:步骤详解与最佳实践

通过获取签名信息、配置微信JSSDK、设置分享数据和测试分享功能等步骤,您可以轻松地将链接分享到微信好友,并显示标题和缩略图。特别是在中国,微信作为最大的社交平台,其分享功能对于应用的推广和用户互动至关重要。在H5页面中触发分享操作,观察微信是否弹出分享界面,并检查分享的标题、链接和缩略图是否正确显示。需要注意的是,由于微信分享的签名信息有一定的有效期(通常为2小时),因此在设置分享之前需要检查签名是否过期。函数中,使用获取到的签名信息配置微信JSSDK,并设置分享的标题、链接、缩略图等内容。

大白菜代码的博客 1万+

【uniapp基本功能】分享功能实现、getCurrentPages使用、uni-app本地图片动态显示在页面、uni-app上传图片并进行预览

并且如果运行在h5端时,会报如下错误: Uncaught (in promise)ReferenceError: require is。在uniapp使用vue3版本时, return require(“@/static/images/ranking-1.png”)defined 好像 @没有被解析为根目录, 并且require的时候会自动在后面加上.js后缀名。H5:如果是普通浏览器,浏览器自带分享按钮;如果是在微信内嵌浏览器中,可调用js-sdk进行分享,参考。从相册选择以及显示在页面上:完整代码。

可可的博客 1638

BCIC IV 2a数据集实战:从MATLAB导入到EEG信号分析全流程

本文提供了BCIC IV 2a数据集从MATLAB导入到EEG信号分析的完整实战流程。详细解析了数据集结构,区分了EEG与EOG信号,并演示了信号可视化、基础预处理(滤波、分段、基线校正)等关键步骤,帮助脑机接口研究者快速上手处理这一经典运动想象数据集。

weixin_29047919的博客 470

uni-app实现Android分享到微信朋友圈和微信好友,附DEMO和源码

微信分享大家见怪不怪了!就是再APP点击分享,然后唤起微信,分享当前页面到朋友圈或者分享给朋友。 所以,我开发了这样的一个工具。 动图demo 分享后 就是一个带有标题、描述文字、LOGO、分享来源的一个小卡片。 开发 这个App是使用uni-app框架开发的。没了解过可以取访问:https://uniapp.dcloud.io/了...

weixin_34221773的博客 1万+

基于灰度信息的图像配准方法

图像配准方法分为三种:基于灰度信息方法、基于变换域方法和基于特征方法。基于灰度信息方法是直接根据图像或图像块灰度信息进行像素上的对齐,该方法主要思想是直接最小化图像信息差异。然而,图像信息差异的判断准则衍生出不同的配准方法。常见的基于灰度信息的图像配准方法包括互相关法、互信息法和误差平方和法。本节将分别对互相关法、互信息法和误差平方和算法展开介绍,并通过MATLAB进行演示。基于灰度的图像方法容易实现,但同样存在不足。该方法对成像条件(光照,遮挡)、图像形变旋转以及噪声极其敏感,同时具有较高的计算复杂度。

weixin_42068054的博客 3777

uniapp 分享微信好友、微信朋友圈、QQ

这两天领导要做一个分享微信好友、微信朋友圈、QQ的功能,因为之前没有这方面的经验,所以都是一边查资料一边去做的,现在搞得差不多了,在这里给大家分享一下,希望大家多多指点 这里是先做安卓的 先上h5页面 分享到微信好友的页面(朋友圈和QQ就不搞上来了,长得差不多) 点击分享卡片是在微信浏览器上打开的,但是微信浏览器是禁止网页唤起app这个操作的,具体的可以去百度一下,所以我这里就做一个提示,让用户与其他浏览器打开 这是在另一个浏览器打开的,此时可以唤起APP 好了,大致的效果就像上面这样了,下面我们来

HXH_csdn的博客 3675

FPGA开发者必看:如何用SATA3.0主机控制器IP实现高速存储扩展(附Xilinx实测数据)

本文为FPGA开发者提供了基于SATA3.0主机控制器IP核的高速存储方案设计与优化指南。通过详细解析IP核架构、Xilinx FPGA平台集成实战及性能优化技巧,帮助开发者实现接近理论极限的540MB/s数据传输速度。文章还包含常见问题解决方案和高级应用场景拓展,是硬件工程师提升存储性能的必备参考。

weixin_30632089的博客 114

CEH Practical 实战考试真题与答案

CEH Practical 是 EC-Council 推出的Certified Ethical Hacker(CEH)认证项目中的一项高级动手实践考试。它不同于传统的理论考试,侧重于在真实环境中检验考生的实操能力。

sgafdgdagd的博客 968

uni-app h5 分享好友与朋友圈等功能

1. 下载js: https://unpkg.com/jweixin-module@1.4.1/out/index.js 2. 在根目录下创建文件夹jweixin,然后把下载的js放进去,命名index.js。 3. 新建一个js或者直接在main.js中写:(我这个是直接在mian.js中使用的) var jweixin = require('./jweixin') uni.re...

俊刚的博客 1万+

YOLOv11n-seg 实战指南:从训练到模型部署的完整流程

本文提供了YOLOv11n-seg实例分割模型从环境准备、数据标注到模型训练、验证及最终部署的完整实战指南。详细讲解了如何准备多边形掩码数据、配置关键训练参数、解读分割核心评估指标,并重点介绍了将模型导出为ONNX等格式进行部署的流程与优化技巧,帮助开发者高效完成从开发到生产的全链路实践。

weixin_29062255的博客 554

UniApp跨平台分享方案:鸿蒙、微信小程序与H5的统一适配实践

在移动应用开发中,跨平台分享功能是实现社交传播和用户增长的关键技术点。其核心原理在于通过统一的API抽象层,屏蔽不同操作系统和运行环境的底层差异,从而实现“一次编写,多端运行”的开发效率。这项技术的价值在于显著降低多平台适配的维护成本,提升功能一致性。典型的应用场景包括内容型应用的文章、图片、链接分享至微信、QQ等社交渠道。本文聚焦于基于UniApp框架,通过三层适配架构(统一接口、平台路由、具体实现),结合条件编译和运行时检测,解决在鸿蒙OS原生应用、微信小程序及H5浏览器中分享功能的环境割裂问题。方案中

weixin_34414650的博客 390

多智能体强化学习论文——SEAC(NIPS 2020)

存在的问题&研究动机&研究思路 在稀疏奖励的环境下,多智能体的exploration存在效率不足等问题。 在IAC的基础上尝试加入重要性采样,使得每次更新智能体iii的参数时,不再仅仅使用智能体iii的数据,而是使用所有智能体的数据进行智能体iii数据的更新。 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。 创新点 在每个智能体iii的actoriactor_iactori​和criticicritic_icritici​的更新过程中,都加入了重要性

我的AI笔记 1207

光芯片Photodiode 原理,设计与版图

但是光电二极管相对较大,因为需要接收足够的入射光线,此外,光电二极管的厚度比较小,通常位于 1 um 以下(为了波导模式更好地在波导中传输,减少损耗)。从下图中可以看出,当反偏时,即有光在耗尽层被吸收被转换为电流信号时,增加反向偏压几乎不影响反向电流,因此,对于光电二极管来说,反向电压并不影响反向电流的大小。不施加外部电压(开路状态),光生电压直接输出,流出的电流受到抑制,在两端积累一定的电位差,类似太阳能电池,具体特点是噪声低,但响应速度慢。因此,需要尽可能的减少暗电流,以增加元件对光的灵敏度。

u011699626的博客 981

uni-app公众号项目打包H5自定义微信分享好友、朋友圈

本文介绍了如何在uni-app中实现H5页面的自定义微信分享功能。首先,需要在微信公众号后台配置JS接口安全域名。接着,通过引入weixin-js-sdk库,使用wx.config方法配置微信JS-SDK,并设置分享内容。前端代码负责获取当前URL并请求后端生成分享签名,后端通过getShareSignature方法生成签名并返回给前端。后端代码包括获取jsapi_ticket、生成签名等步骤,确保分享功能正常使用。整个过程涉及前后端协作,最终实现自定义微信分享好友和朋友圈的功能。

厚积薄发. 846

科研绘图系列:R语言绘制极坐标饼图(pie plot)

科研绘图系列:R语言极坐标饼图(pie plot)

专注生信领域 1053

实现:uniapp项目分享视频页面到微信,可以自定义分享的页面样式及内容

(最后:如果有参数的话记得后面加上“?参数=xxx”,也有的是链接中间没加#,但是我这里别的页面都加了,可以自己都试一试,最后我们把这个链接放在uni.share的mediaUrl那里就完成啦!manifest.json中的web配置(h5配置)中这样设置。(我们使用的是阿里云的OSS)

m0_60817860的博客 1333

深度学习工具包 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")

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

uniapp学习(008-2 图片模块和分享模块)

总时长 23:40:00 共116P此文章包含第93p-第p103的内容。

wang_book的博客 1009

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

uni-app 小程序分享到朋友和朋友圈

uni-app分享小程序方法 App:可以自主控制分享内容、分享形式及分享平台 使用uni.shareAPI方式调用社交sdk分享 使用plus.share.sendWithSystem呼起手机os的系统分享菜单 小程序:不支持API调用,只能用户主动点击触发分享。可使用自定义按钮方式 <button open-type="share"> 或监听系统右上角的分享按钮 onShareAppMessage 进行自定义分享内容 H5:如果是普通浏览器,浏览器自带分享按钮;如果是在微信内嵌..

YouZi_X的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

uniapp笔记——使用 h5+plus 做的APP实现分享到微信的功能

注意:该方法不能在浏览器里测试,只能打包成APP后进行测试,否则会报错 找不到 plus,

weixin_44792197的博客 1358

uniapp-分享、支付、打包、上传

uni-app分享支付、分享、打包、上传

Hx006的博客 910

uniapp写H5授权登录及分享,返回到目标页面

在utils创建jsShare.js文件,代码如下,这里面的图片展示方式可按照自己的需求更改。在methods中写入,this.fangyuanDetail为详情获取的内容,赋值进去。在首页使用,引入跟上面一样,下面直接写标语即可。以上就是我的写法,有问题随时浏览沟通哦!还有一个就是登录返回目标页面。在onLoad里面写入。

qq_34568657的博客 649

UniApp跨平台分享功能架构设计与多端适配实战

在移动应用开发中,分享功能是连接用户与社交网络的核心交互,其本质是数据在不同平台间的安全、高效传递。从技术原理上看,这涉及前端UI交互、API调用、数据模型封装及多端运行时适配。其技术价值在于通过一套统一的抽象层,实现业务逻辑与平台特性的解耦,从而提升代码的可维护性和开发效率。在实际工程实践中,开发者需要针对微信小程序、H5、App等不同平台,设计差异化的适配策略,处理诸如分享卡片定制、参数传递、图片优化等具体问题。本文以UniApp框架为例,深入探讨了如何构建健壮的分享模块,其中涉及策略模式的应用、Web

weixin_30664615的博客 381

uni-app开发APP和H5,分享功能

uni-app开发APP和H5,分享功能

阿金的博客 748
上一篇: Flutter实战记录-协作开发遇到的问题
下一篇: Uniapp打包H5端实现图片缓存方案
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值