博客

关于Visual studio code/power shell中无法使用virtualenv

0

Visual studio code使用power shell作为命令行工具,但在其中使用virtualenv的Scripts\activate.bat 无法进入到虚拟环境。
查了下,在power shell下应该使用ps脚本,virtualenv自带的有Scripts\activate.ps1
运行后power shell报错:
c:\Users\coloz\Desktop\servertest\iot\Scripts\activate.ps1 : 无法加载文件 C:\Users\coloz\Desktop\servertest\iot\Scripts\activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中
的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ c:\Users\coloz\Desktop\servertest\iot\Scripts\activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

报错中其实已经有解决办法https:/go.microsoft.com/fwlink/?LinkID=135170
简而言之,就是为了安全起见,power shell不能运行脚本,运行以下命令即可开启脚本运行权限:


 

js拖拽库

0

https://github.com/desandro/draggabilly
https://draggabilly.desandro.com/

https://github.com/taye/interact.js
http://interactjs.io/

ionic生命周期事件

0

angular有一套生命周期事件:

https://angular.cn/guide/lifecycle-hooks

ionic也有,其更贴近app交互需求,在开发时应尽量使用ionic这套:

Page Event Returns Description
ionViewDidLoad void Runs when the page has loaded. This event only happens once per page being created. If a page leaves but is cached, then this event will not fire again on a subsequent viewing. TheionViewDidLoad event is good place to put your setup code for the page.
ionViewWillEnter void Runs when the page is about to enter and become the active page.
ionViewDidEnter void Runs when the page has fully entered and is now the active page. This event will fire, whether it was the first load or a cached page.
ionViewWillLeave void Runs when the page is about to leave and no longer be the active page.
ionViewDidLeave void Runs when the page has finished leaving and is no longer the active page.
ionViewWillUnload void Runs when the page is about to be destroyed and have its elements removed.
ionViewCanEnter boolean/Promise<void> Runs before the view can enter. This can be used as a sort of “guard” in authenticated views where you need to check permissions before the view can enter
ionViewCanLeave boolean/Promise<void> Runs before the view can leave. This can be used as a sort of “guard” in authenticated views where you need to check permissions before the view can leave

ionic/cordova插件开发

0

官方示例
https://github.com/apache/cordova-plugin-device

iOS库 .a与.framework区别

0

一、什么是库?

库是共享程序代码的方式,一般分为静态库和动态库。

二、静态库与动态库的区别?

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

三、iOS里静态库形式?

.a和.framework

四、iOS里动态库形式?

.dylib和.framework

五、framework为什么既是静态库又是动态库?

系统的.framework是动态库,我们自己建立的.framework是静态库。

六、a与.framework有什么区别?

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。

.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。

.a + .h + sourceFile = .framework。

建议用.framework.

七、为什么要使用静态库?

方便共享代码,便于合理使用。

实现iOS程序的模块化。可以把固定的业务模块化成静态库。

和别人分享你的代码库,但不想让别人看到你代码的实现。

开发第三方sdk的需要。

八、制作静态库时的几点注意:

1 注意理解:无论是.a静态库还.framework静态库,我们需要的都是二进制文件+.h+其它资源文件的形式,不同的是,.a本身就是二进制文件,需要我们自己配上.h和其它文件才能使用,而.framework本身已经包含了.h和其它文件,可以直接使用。

2 图片资源的处理:两种静态库,一般都是把图片文件单独的放在一个.bundle文件中,一般.bundle的名字和.a或.framework的名字相同。.bundle文件很好弄,新建一个文件夹,把它改名为.bundle就可以了,右键,显示包内容可以向其中添加图片资源。

3 category是我们实际开发项目中经常用到的,把category打成静态库是没有问题的,但是在用这个静态库的工程中,调用category中的方法时会有找不到该方法的运行时错误(selector not recognized),解决办法是:在使用静态库的工程中配置other linker flags的值为-ObjC。

4 如果一个静态库很复杂,需要暴露的.h比较多的话,就可以在静态库的内部创建一个.h文件(一般这个.h文件的名字和静态库的名字相同),然后把所有需要暴露出来的.h文件都集中放在这个.h文件中,而那些原本需要暴露的.h都不需要再暴露了,只需要把.h暴露出来就可以了。

原文地址:http://blog.csdn.net/lvxiangan/article/details/43115131

mongodb图形化客户端

0

ROBO 3T下载地址
https://robomongo.org/download

ionic相关app

0

google play镜像网站:https://apkpure.com/search?q=ionic

npm报MSBUILD错误的解决办法

1

npm报错:
MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装 .NET Framework 2.0 SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了其他位置,请将其位置添加到系统路径中。

直接使用这个工具即可,一次解决所有问题:
https://github.com/felixrieseberg/windows-build-tools

npm install –global –production windows-build-tools
需要注意的是需要管理员权限安装,CMD右键管理员打开即可

angular组件交互

0

http://blog.csdn.net/kuangshp128/article/details/71172934

https://segmentfault.com/a/1190000008959575

ionic使用prod编译报错

2

使用ionic cordova run android没有报错,编译正常,但加上–prod编译发布版本报错,报错如下:

PS C:\Users\coloz\Desktop\iotapp> ionic cordova run android –prod
Running app-scripts build: –prod –platform android –target cordova
[13:02:15] build prod started …
[13:02:15] clean started …
[13:02:16] clean finished in 8 ms
[13:02:16] copy started …
[13:02:16] deeplinks started …
[13:02:16] deeplinks finished in 216 ms
[13:02:16] ngc started …
Error: Metadata version mismatch for module C:/Users/coloz/Desktop/iotapp/node_modules/@ionic/storage/dist/src/storage.d.ts, found version 4, expected 3
at StaticSymbolResolver.getModuleMetadata (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler\bundles\compiler.umd.js:25748:34)
at StaticSymbolResolver._createSymbolsOf (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler\bundles\compiler.umd.js:25536:46)
at StaticSymbolResolver.getSymbolsOf (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler\bundles\compiler.umd.js:25517:14)
at C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler\bundles\compiler.umd.js:24376:30
at Array.forEach ()
at extractProgramSymbols (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler\bundles\compiler.umd.js:24375:79)
at AotCompiler.analyzeModulesAsync (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler\bundles\compiler.umd.js:23931:47)
at CodeGenerator.codegen (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler-cli\src\codegen.js:32:14)
at Function.NgTools_InternalApi_NG_2.codeGen (C:\Users\coloz\Desktop\iotapp\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30)
at Object.doCodegen (C:\Users\coloz\Desktop\iotapp\node_modules\@ionic\app-scripts\dist\aot\codegen.js:6:51)
[13:02:20] copy finished in 4.98 s

Error: Metadata version mismatch for module
模块版本不符,估计可能是我在另一台电脑时,更新了模块造成的
ionic官方github上解决方法:删除项目下的node_modules,并重新安装所有模块。
实际测试,还是没有解决问题。