<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Wbiokr的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Wbiokr</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Wbiokr]]></copyright><item><title><![CDATA[vitest踩坑记：奇奇怪怪问题汇总]]></title><link>https://blog.csdn.net/Wbiokr/article/details/129260918</link><guid>https://blog.csdn.net/Wbiokr/article/details/129260918</guid><author>Wbiokr</author><pubDate>Tue, 28 Feb 2023 17:42:21 +0800</pubDate><description><![CDATA[vite，vitest，webpack，单元测试，jsdom，window]]></description><category></category></item><item><title><![CDATA[iphone X中react-router单页面如何有效配置微信 解决iOS中invalid signature问题 the permission value is offline verifying]]></title><link>https://blog.csdn.net/Wbiokr/article/details/106466558</link><guid>https://blog.csdn.net/Wbiokr/article/details/106466558</guid><author>Wbiokr</author><pubDate>Mon, 01 Jun 2020 10:14:44 +0800</pubDate><description><![CDATA[iOS中，在某个页面内调用微信JSSDK相关API，如扫码、分享等，使用当前页面URL总会出现签名错误(invalid signature)，导致API调用失败。
在JSSDK文档页面有这么一句话:

所有需要使用JS-SDK的页面必须先注入配置信息，否则将无法调用（同一个url仅需调用一次，对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性，所以使用pushState来实现web app的页面会导致签名失败，此问题会在And]]></description><category></category></item><item><title><![CDATA[windows下electron开发应用如何获取管理员权限，通过修改注册表获取管理员权限]]></title><link>https://blog.csdn.net/Wbiokr/article/details/85780906</link><guid>https://blog.csdn.net/Wbiokr/article/details/85780906</guid><author>Wbiokr</author><pubDate>Fri, 04 Jan 2019 15:57:28 +0800</pubDate><description><![CDATA[通过插件rage-edit修改注册表，从而获取管理员权限
const {Registry} = require('rage-edit')
const {app } = require('electron')

module.exports = (cbSus,cbErr)=&amp;gt;{
	Registry.set(
		'HKCU\\Software\\Microsoft\\Windows NT\\C...]]></description><category></category></item><item><title><![CDATA[electron如何设置开机自动启动应用，修改注册表开机自启APP]]></title><link>https://blog.csdn.net/Wbiokr/article/details/85779230</link><guid>https://blog.csdn.net/Wbiokr/article/details/85779230</guid><author>Wbiokr</author><pubDate>Fri, 04 Jan 2019 15:34:18 +0800</pubDate><description><![CDATA[通过修改注册表可以实现electron开机自启。

引入，rage-edit插件依赖，文档，可以自己查看；
封装函数：
const {Registry} = require('rage-edit')
const path = require('path')
const {app} = require('electron)

function setAppStart(cbSus,cbErr){
	R...]]></description><category></category></item><item><title><![CDATA[electron如何调用其他应用作为子进程？]]></title><link>https://blog.csdn.net/Wbiokr/article/details/85778113</link><guid>https://blog.csdn.net/Wbiokr/article/details/85778113</guid><author>Wbiokr</author><pubDate>Fri, 04 Jan 2019 15:18:52 +0800</pubDate><description><![CDATA[electron开发桌面端应用，多人合作时候，H5端或许会需要调用C++程序作为子进程，如何实现？

主程中，通过node官方模块child_process即可完成：
主程main.js
const {spawn} = require('child_process)
const {ipcMain} = require('electron')

ipcMain.on('app-child',(e,a...]]></description><category></category></item><item><title><![CDATA[electron中，如何自动读取文件并通过File对象上传]]></title><link>https://blog.csdn.net/Wbiokr/article/details/85777215</link><guid>https://blog.csdn.net/Wbiokr/article/details/85777215</guid><author>Wbiokr</author><pubDate>Fri, 04 Jan 2019 15:05:57 +0800</pubDate><description><![CDATA[electron写应用时，会遇到自动上传的需求。但是H5中只能通过input（type=file）来手动上传，JS又没有读取文件的权限，此时，我们可以借助node模块完成需求。

1. node读取文件流
fs模块读取本地文件，在主、进程通信时候，将要读取的文件路径filePath传给node。
主程main.js
fs.readFile(filePath,(err,data)=&amp;gt;{
  i...]]></description><category></category></item><item><title><![CDATA[js打开新窗口并且不被拦截]]></title><link>https://blog.csdn.net/Wbiokr/article/details/83096466</link><guid>https://blog.csdn.net/Wbiokr/article/details/83096466</guid><author>Wbiokr</author><pubDate>Tue, 16 Oct 2018 19:55:41 +0800</pubDate><description><![CDATA[js打开新窗口并且不被拦截
window.open是javascript函数，该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口，浏览器会拦截你,那么如何避免呢。
注意，只有直接使用js调用 window.open(url); 打开新窗口时，才会被拦截，如果是改变原理额窗口：window.open(url,‘_self‘); 则不会...]]></description><category></category></item><item><title><![CDATA[Nginx在windows上安装 及 Nginx的配置及优化]]></title><link>https://blog.csdn.net/Wbiokr/article/details/81878310</link><guid>https://blog.csdn.net/Wbiokr/article/details/81878310</guid><author>Wbiokr</author><pubDate>Mon, 20 Aug 2018 21:36:40 +0800</pubDate><description><![CDATA[Nginx (engine x) 是一个高性能的HTTP和反向代理服务器，也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru 站　点（俄文：Рамблер）开发        的.

　　它也是一种轻量级的Web服务器，可以作为独立的服务器部署网站（类似Tomcat）。它高性能和低消耗内存的结构受到很多大公司青睐，如淘宝网站架设。

...]]></description><category></category></item><item><title><![CDATA[css---前端开发中，如何使盒子水平垂直居中？]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80943036</link><guid>https://blog.csdn.net/Wbiokr/article/details/80943036</guid><author>Wbiokr</author><pubDate>Fri, 06 Jul 2018 16:31:28 +0800</pubDate><description><![CDATA[1、使用margin负值 
css部分

.box{
 position:relative;
 width:600px;
 height:400px;
}
.item{
 height:100px;
 width:100px;
 position:absolute;
 top:50%;
 left:50%;
 margin-left:-50px;
 margin-top:-50px;
}

htm...]]></description><category></category></item><item><title><![CDATA[js---通过代码刷新当前页面，location.reload与location.replace方法，如何刷新页面并减少历史长度？]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80940199</link><guid>https://blog.csdn.net/Wbiokr/article/details/80940199</guid><author>Wbiokr</author><pubDate>Fri, 06 Jul 2018 14:14:46 +0800</pubDate><description><![CDATA[1，reload 方法，该方法强迫浏览器刷新当前页面。



location.reload(force)

如果该方法没有规定参数，或者参数是 false，它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变，reload() 会再次下载该文档。如果文档未改变，则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。

如...]]></description><category></category></item><item><title><![CDATA[js---JavaScript中的浅拷贝与深拷贝]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80939931</link><guid>https://blog.csdn.net/Wbiokr/article/details/80939931</guid><author>Wbiokr</author><pubDate>Fri, 06 Jul 2018 14:01:17 +0800</pubDate><description><![CDATA[在 JS 中有一些基本类型像是Number、String、Boolean，而对象就是像这样的东西{ name: ‘Larry’, skill: ‘Node.js’ }，对象跟基本类型最大的不同就在于他们的传值方式。

基本类型是按值传递，像是这样：在修改a时并不会改到b



var a = 25;
var b = a;
b = 18;
console.log(a);//25
console.lo...]]></description><category></category></item><item><title><![CDATA[iOS下，H5地址从webview分享到QQ，微信打不开自动拼接appinstall=0地址，问题解决方法]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80916690</link><guid>https://blog.csdn.net/Wbiokr/article/details/80916690</guid><author>Wbiokr</author><pubDate>Wed, 04 Jul 2018 18:09:10 +0800</pubDate><description><![CDATA[iOS系统中，从APP里webview分享H5地址，浏览器里面可以打开，但是QQ里404，安卓一切正常，抓包之后发现地址后面被拼接了一个参数appinstall=0，并且拼接到index.html后面导致404。

搜索之后明白这个参数是QQ用于判断是否安装了自己的软件，至于，怎么取消，没有找到解决办法，只有从URL上着手



当分享地址为/index.html时候，加上?解决index.htm...]]></description><category></category></item><item><title><![CDATA[ES6---理解 JavaScript 的 async/await]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80698048</link><guid>https://blog.csdn.net/Wbiokr/article/details/80698048</guid><author>Wbiokr</author><pubDate>Thu, 14 Jun 2018 20:42:33 +0800</pubDate><description><![CDATA[随着 Node 7 的发布，越来越多的人开始研究据说是异步编程终级解决方案的 async/await。我第一次看到这组关键字并不是在 JavaScript 语言里，而是在 c# 5.0 的语法中。C# 的 async/await 需要在 .NET Framework 4.5 以上的版本中使用，因此我还很悲伤了一阵——为了要兼容 XP 系统，我们开发的软件不能使用高于 4.0 版本的 .NET Fr...]]></description><category></category></item><item><title><![CDATA[git---Git中merge、stash、reset进行版本控制、回退以及暂存修改]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80685633</link><guid>https://blog.csdn.net/Wbiokr/article/details/80685633</guid><author>Wbiokr</author><pubDate>Wed, 13 Jun 2018 21:42:18 +0800</pubDate><description><![CDATA[取消某次合并



git merge --abort #如果Git版本 &amp;gt;= 1.7.4
git reset --merge #如果Git版本 &amp;gt;= 1.6.1

Note: 在合并之前要保证没有未提交的文件，如果有未提交的文件但现在又不想提交，用stash命令暂存。

暂存命令stash使用



git stash #将本地修改暂时存储起来
git stash list #查看暂...]]></description><category></category></item><item><title><![CDATA[vue---vuex中modules中action如何调用state、兄弟模块state、根state，以及调用相关action、mutation，getters?]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80685559</link><guid>https://blog.csdn.net/Wbiokr/article/details/80685559</guid><author>Wbiokr</author><pubDate>Wed, 13 Jun 2018 21:36:26 +0800</pubDate><description><![CDATA[vuex中modules可以将项目state进行分块，互补干扰。那么在单个module中，action如何调用其他module中action或者根action/mutation/state？

打印action参数：

const actions={
  editName(options,payload){
    console.log(options)
  }
}


运行editName方法...]]></description><category></category></item><item><title><![CDATA[react-native---rn中如何让组件居中定位，loading如何向H5中fixed绝对居中定位]]></title><link>https://blog.csdn.net/Wbiokr/article/details/80011632</link><guid>https://blog.csdn.net/Wbiokr/article/details/80011632</guid><author>Wbiokr</author><pubDate>Thu, 19 Apr 2018 21:56:44 +0800</pubDate><description><![CDATA[rn中没有fixed定位，更没有100%宽高； 
我们可以Dimensions以及flex布局进行居中设置。。。



//1. 把要居中定位的组件用view包起来(下面的样式便是针对外层view所写)；
//2. 使用时候，将整个组件放在所有使用页面根组件下；

//如：


水平居中：

width:Dimensions.get('window').width, //窗口宽度
justifyC...]]></description><category></category></item><item><title><![CDATA[angular---angularJs1.x中select如何遍历渲染option，数组与对象、索引使用以及动态异步渲染option项]]></title><link>https://blog.csdn.net/Wbiokr/article/details/79940080</link><guid>https://blog.csdn.net/Wbiokr/article/details/79940080</guid><author>Wbiokr</author><pubDate>Sat, 14 Apr 2018 14:40:06 +0800</pubDate><description><![CDATA[1、ng-options指令用途：

在表达式中使用数组或对象来自动生成一个select中的option列表。ng-options与ng-repeat很相似，很多时候可以用ng-repeat来代替ng-options。但是ng-options提供了一些好处，例如减少内存提高速度，以及提供选择框的选项来让用户选择。当select中一个选项被选择，该选项将会使用ng-model自动绑定到对应数据上。如...]]></description><category></category></item><item><title><![CDATA[ES6---new Promise()讲解，Promise对象是用来干嘛的?]]></title><link>https://blog.csdn.net/Wbiokr/article/details/79490390</link><guid>https://blog.csdn.net/Wbiokr/article/details/79490390</guid><author>Wbiokr</author><pubDate>Thu, 08 Mar 2018 21:34:38 +0800</pubDate><description><![CDATA[ES6 Promise 先拉出来遛遛

复杂的概念先不讲，我们先简单粗暴地把Promise用一下，有个直观感受。那么第一个问题来了，Promise是什么玩意呢？是一个类？对象？数组？函数？



别猜了，直接打印出来看看吧，console.dir(Promise)，就这么简单粗暴。 


这么一看就明白了，Promise是一个构造函数，自己身上有all、reject、resolve这几个眼熟的方法...]]></description><category></category></item><item><title><![CDATA[react-native---rn中的修饰组件（TouchableHightlight、TouchableOpacity、TouchableNativeFeedback等）]]></title><link>https://blog.csdn.net/Wbiokr/article/details/79167771</link><guid>https://blog.csdn.net/Wbiokr/article/details/79167771</guid><author>Wbiokr</author><pubDate>Thu, 25 Jan 2018 23:17:46 +0800</pubDate><description><![CDATA[react-native中View组件这是单纯的视图容器，并不能响应交互变化，绑定事件，rn提供了TouchableOpacity等封装组件以正确响应触摸操作。


TouchableWithoutFeedback：单纯的用户点击触摸响应组件，不会改变视图UI，仅绑定press、longPress等事件；
TouchableOpacity：响应用户触摸操作，继承TouchableWithoutFe]]></description><category></category></item><item><title><![CDATA[react-native---rn中的滑动视图组件（ScrollView）]]></title><link>https://blog.csdn.net/Wbiokr/article/details/79134527</link><guid>https://blog.csdn.net/Wbiokr/article/details/79134527</guid><author>Wbiokr</author><pubDate>Mon, 22 Jan 2018 22:41:41 +0800</pubDate><description><![CDATA[ScrollView组件介绍与简单使用




React Native中的 ScrollView 的组件除了包装滚动平台，还集成了触摸锁定的 响应者 系统，使用的时候有几点需要注意




//ScrollView 必须有一个确定的高度才能正常工作,对于 ScrollView 来说，它就是将一些不确定高度的子组件装进确定高度的容器

//初始化的2中方式
1. 给 ScrollView 中加 []]></description><category></category></item></channel></rss>