H5微信内分享自定义标题图标
以下两图一个是默认的分享样式,一个是自定义的分享样式
在微信环境中分享一个H5,分享出来的卡片默认是没有文案和图标的。若想添加文案和图标需要借助微信的js-sdk
1.公众号的设置首先得有一个公众号,这个是前提。微信内分享的这个H5页面可以和公众号没有关系,但是自定义图标的这个功能相当于借助了公众号的能力。
1.1登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”按照提示下载校验文件放置到H5的域名根目录下,可在浏览器访问校验文件验证成功与否。
2.引入js文件<script></script>标签引入js文件即可
3.通过config接口注入权限验证配置主要参照微信js-sdk说明文档
12345678wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填, ...
数据结构中的堆、栈、堆栈、队列
堆:在程序运行时,而不是在程序编译时,申请某个大小的内存空间。堆是程序程序运行时申请的内存空间,而栈只是一种使用堆的方法。
栈:也叫堆栈,先进后出,有栈底和栈顶的概念。
队列:一种特殊的线性表,只允许在表的前端进行删除,在表的后端进行插入。建立队列结构必须为其静态分配或动态申请一片连续的存储空间,并设置两个指针进行管理,一个对头指针front,一个对尾指针rear。先进先出。不会内存溢出。
参考文章:https://www.cnblogs.com/guoxiaoyan/p/8664150.html
h5调用原生app的方法
分安卓和IOS,安卓可以直接调用,iso需要通过桥来调用
12345678910111213var u = navigator.userAgent;if(u.indexOf('Android') > -1 || u.indexOf('Adr') > -1){ //android终端 let appData = window.android.原生方法(参数); if (appData) {//返回值 }}else if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){ //ios终端 utils.setupWebViewJavascriptBridge((bridge)=>{ bridge.callHandler('原生方法',参数, function (response) { // response返回值 }); })}
ISO的 ...
el-input输入框限制输入数字
利用input方法限制输入框只能输入限制范围内的数字
123456789101112<!-- 只能输入数字 --><el-input v-model="abc" @input="abc=abc.replace(/\D/g,'')"></el-input><!-- 只能 0~100.00之间的 两位小数 --><el-input v-model="minProportionValue" @input="minProportionValue = formatTwoDecimal(minProportionValue, 100)"></el-input>
123456789101112131415161718192021222324252627/** * 不超过某个值的正数,小数位数最多两位 * @value * @maxNumber 最大值 * @isIncludeMax true不能输入m ...
微信小程序获取用户手机号
有个前提是小程序得是企业帐号,个人帐号没有开放这个能力。
用button组件获取手机号,比较简单,记录一下避免遗忘。
1<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
1234567891011121314151617181920212223getPhoneNumber(e) {// 这个回调返回的手机号是加密的,需要调后台解密 // 先拿openid util.getOpenId().then(openId => { let params = { encryptedData: e.detail.encryptedData, iv: e.detail.iv, openid: openId, loginSysName: "APPLETS_HAOFANG&q ...
vue的H5项目px转vw
看了一些博客几乎都是互相抄袭,用了很多不知道是什么作用的插件。其实px转vw只用了一个核心插件postcss-px-to-viewport,安装该插件,然后在根目录新建postcss.config.js做一下配置,在项目中就可以随意写px了。webpack会将px自动转换为vw。
12345678910111213module.exports = { plugins: { "postcss-px-to-viewport": { viewportWidth: 750, // (Number) The width of the viewport. viewportHeight: 1334, // (Number) The height of the viewport. unitPrecision: 3, // (Number) The decimal numbers to allow the REM units to grow to. ...
js消抖(debounce)与节流(throttle)
节流:如果一个函数持续的频繁的触发,那么让他在一定的时间间隔后再触发。感觉就像是过安检,人多的时候隔一段时间放进去几个。
消抖:如果一个函数持续的触发,那么只在它结束过一段时间只执行一次。像是两个人的对话,A在不停的balabala,如果他说话有停顿,但是停顿的时间不够长,就认为他没有说完,当停顿的时间足够长才认为A说完了,然后B开始回答。输入联想是消抖,当输入停顿时间足够长再去查询,如果连续输入(停顿时间短)就不去调接口。
消抖和节流都是某个行为持续的触发,不同之处在于是要优化到减少他的执行次数还是优化到只执行一次。
123消抖<input onkeyup="keyupHandle(event)">节流<input onkeyup="keyupHandle2(event)">
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162// 消抖fun ...
git每次拉代码都需要输密码?
sourcetree每次拉代码都需要输密码?在.git目录有个config文件,在路径前配置下用户名和密码
12345678910[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true[remote "origin"] url = http://用户名:密码@url.git fetch = +refs/heads/*:refs/remotes/origin/*
vscode每次拉代码都需要输密码?在code打开推送的代码目录并打开终端输入以下代码
1git config --global credential.helper store
一般来说执行完上述命令,第一次推送需要再次填一次账号密码,之后就不需要了
promise的简单用法
在es6中,promise终于成为了原生对象,可以直接使用。promise是异步编程的一种解决方案。解决了异步回调多层嵌套的问题。
promise状态的理解用new Promise实例化的promise对象有三个状态:resolved(fulfilled) rejected pending
promise的简单用法123456789101112131415161718192021222324252627282930313233343536373839// 封装一个方法run_a,当Math.random()取的值小于0.5时执行resolve,否则执行rejectvar run_a = function () { var _promise = new Promise(function(resolve, reject){ // 模拟异步 setTimeout(function () { var rand = Math.random() if (rand < 0.5) & ...
js基础之数组
数组简介数组的每一项可以保存任何数据类型new Array() 一个参数代表长度,两个及以上参数代表数组元素
数组常用的20+个方法:又复习到这,这二十多个方法你都牢牢掌握吗?数组的方法是最最基础的基础,但是有些方法不是很常用,很多人都会出错,这就奇怪了。
1.push(item) 可添加多个逗号隔开2.pop() 无参,删除最后一个,返回删除掉的元素3.unshift(item) 前面加一个,返回变化后的数组的长度。可添加多个,逗号分隔4.shift() 无参,删除第一个,返回删除的元素5.splice(index,) 拼接①arr.splice(开始下标,长度); 删除,返回删除的。②arr.splice(开始下标); 从下标开始删除,返回删除的。③arr.splice(开始下标,0,’aa’); 添加,在开始下标位置④arr.splice(开始下标,1,’aa’); 替换
6.reverse() 无参,倒叙7.sort(fn) 排序需要传递一个函数作为参数
123arr.sort(function(a,b){ return a-b;})
以上方法改 ...