岐

你必须努力才能看起来毫不费力。


  • 首页

  • 归档

  • 标签

  • 搜索

Cordova iOS环境搭建

发表于 2019-03-14

由于现在 App 改为前端开发, iOS原生作为辅助开发, Cordova 打包工具是个不错的选择, 而且它允许你编写原生插件来供前端使用, 这大大减轻了原生的开发负担, 记录一下 Cordova 的 iOS 端环境搭建过程。 首先去 Cordova 的官网 去看文档下载 Cordova。其实很简单, 就是几个命令: 安装

1
npm install -g cordova

创建工程:

1
cordova create MyApp

添加平台:

1
2
3
4
cd MyApp
cordova platform add browser
cordova platform add ios
cordova platform add android

运行:

1
cordova run browser

上面这些过程都是非常顺利的, 生成的目录结构如下 所以我们只要把前端打包放进www目录下面, 然后在config.xml中<content src="index.html" />这里来指定入口就行了。

阅读全文 »

Angular 配置跨域请求

发表于 2018-12-28

Web 开发不像 App 开发那样想请求哪就请求哪。处于安全问题考虑浏览器禁止了这一点。但是在开发过程中又不可避免的去进行跨域请求, 记录一下 Angular 配置跨域请求的过程。 首先在package.json目录下新建一个json文件proxydir.png: 这个文件的内容是:

1
2
3
4
5
6
7
8
9
10
11
// 比如我现在想请求的接口是这个:
// let urlString = "http://c.3g.163.com/recommend/getChanListNews?channel=T1457068979049&passport=zvZe9MQ7cxTSrcWyjXHlNmWlYJxG7i%2FExMsC%2FIX1t2E%3D&devId=tYiXx8W73%2BGGquuNxF8c8PkrobMEegFcSVAs152mOWH7Vqve0omfVq78wYMgkonU&size=40&version=9.0&spever=false&net=wifi&lat=&lon=&ts=1464162516&sign=rC4vOZ5ChMjNUe8YKmdGHE3VIm%2BZjtNzO49jFFbSUJx48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore"
// 所有以 /recommend 开头的 api 都会被反向代理到 http://c.3g.163.com 上面
{
    "/recommend":{
        "target": "http://c.3g.163.com",
        "secure": false,
        "logLevel": "debug",
        "changeOrigin": true
    }
}

接下来配置package.json找到script这一项:

1
2
3
4
5
6
7
8
9
10
// --host 192.168.2.100 是我本机的ip地址 这样写是为了其他局域网内的设备 比如手机 可以访问我的页面
// --proxy-config proxy.config.json 添加反向代理设置
"scripts": {
    "ng": "ng",
    "start": "ng serve --host 192.168.2.100 --proxy-config proxy.config.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
},

然后配置angular.json找到serve这一项:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 在options中加入 "proxyConfig": "proxy.config.json" 
"serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
        "browserTarget": "wm:build",
        "proxyConfig": "proxy.config.json"
    },
    "configurations": {
        "production": {
            "browserTarget": "wm:build:production"
        }
    }
},

然后我们在请求的时候就可以这样写了:

1
2
3
4
5
6
7
8
9
10
// listUrl 的内容就是 /recommend/getChanListNews?channel=T1457068979049&passport=zvZe9MQ7cxTSrcWyjXHlNmWlYJxG7i%2FExMsC%2FIX1t2E%3D&devId=tYiXx8W73%2BGGquuNxF8c8PkrobMEegFcSVAs152mOWH7Vqve0omfVq78wYMgkonU&size=40&version=9.0&spever=false&net=wifi&lat=&lon=&ts=1464162516&sign=rC4vOZ5ChMjNUe8YKmdGHE3VIm%2BZjtNzO49jFFbSUJx48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore
constructor(private http: HttpClient) {
    // 注册请求
    this.datas = this.http.get(new Api().listUrl);
}
 ngOnInit() {
    this.datas.subscribe((data) => {
        console.log(data);
    });
 }

可以看到请求成功了:

阅读全文 »

使用 Xcode build 命令打包与 fir-cli 自动发布项目

发表于 2018-08-05

由于最近需要开发的工程有多个环境, 又是企业式发布 app 到 fir 上, 每次打一个包实在是太麻烦了, 而且需要不停的更换证书和描述文件, 所以决定把打包操作用 shell 执行。记录一下操作过程。

阅读全文 »

Objective-C的消息转发

发表于 2018-06-10

说道消息转发的问题其实早在很久以前就有相关的文章了, 只不过自己没有去尝试过相关内容, 最早在新浪的博客上面看过有人写过关于NSInvocation的内容, 博客编写时间是2013年…后来根据面试经历, iOS的底层内容被问的越来越多, 自己也开始了解这些内容, 记录一下消息的转发机制。

阅读全文 »

iOS响应者链

发表于 2018-06-06

点击一个按钮之后发生了什么?以前基本上没有自己验证过这些东西, 其中有的时候需要拦截事件用的是这样的一段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    if (self.userInteractionEnabled == NO || self.hidden == YES || self.alpha <= 0.01) return nil;
    if ([self pointInside:point withEvent:event] == NO) return nil;
    NSInteger count = self.subviews.count;
    for (NSInteger i = count - 1; i >= 0; i--) {
        UIView *childView = self.subviews[i];
        CGPoint childPoint = [self convertPoint:point toView:childView];
        UIView *resultView = [childView hitTest:childPoint withEvent:event];
        if (resultView) {
            return resultView;
        }
    }
    return self;
}

但这是怎么得来的呢?来论证一下。

阅读全文 »

Hibernate的逆向工程操作

发表于 2018-06-01

写完了 Mybaits 的逆向操作也来写一下 Hibernate 的逆向工程操作吧, 虽然这个库以后几乎不能用到了…

阅读全文 »

Mybatis逆向工程

发表于 2018-05-28

今天使用 Maven 插件的方式来对 Mybatis 进行逆向操作, 自动生成dao mapper 和 po 类, 记录一下配置过程

阅读全文 »

Mac Mysql 启动的问题

发表于 2018-05-11

今天装了一个Navicat来准备使用数据库, 然后发现忘记了数据库的密码…也不知道初始密码是啥…略尴尬, 因为我现在手里的电脑是公司的, 也不知道上一个人设置的密码是啥, 所以决定重置密码来解决一下这个问题, 然后由重置密码又引出一堆问题… 首先是这个问题

1
mac The server quit without updating PID file (/usr/local/var/mysql/xxx.local)

大概就是/usr/local/var/mysql/xxx.local这个目录下没有对应用户的pid file, 首先想到的是权限问题, 这里还要吐槽一下新版的mac权限设置, 某些文件夹下是不能使用chmod 777的, 因为系统不允许, 提示Operation not permitted当然这也不是新出的功能, 很早的时候就有了, 只是我很少去东系统文件夹下面的东西。那么怎么解决这个问题呢? 重启mac, 按住command + R等电脑读条结束后会进入到recover模式, 然后选择工具->命令行, 执行csrutil disable然后重启。

阅读全文 »

使用Charles抓HTTPS的包

发表于 2018-04-12

又开始写新的项目了,这次的项目是用修改本地hosts去实现开发环境,测试环境和生产环境的切换的,然后使用到了Charles来抓取获取HTTPS的数据,Charles获取HTTP数据很简单,但是没经过配置获取HTTPS的数据是有乱码或者看不到的,记录一下解决HTTPS抓包的过程。

阅读全文 »

Carthage Build 失败的问题

发表于 2018-04-04

大概情况类似这样

1
2
3
4
5
6
7
*** Fetching SwiftyJSON
*** Fetching Alamofire
*** Checking out Alamofire at "4.7.2"
*** Checking out SwiftyJSON at "4.1.0"
*** xcodebuild output can be found in /var/folders/dg/byxrmzh501ggbc21lsnk_z4h0000gn/T/carthage-xcodebuild.RY5lcm.log
A shell task failed with exit code 72:
xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH

这个是由于Xcode偏好设置中Location的Command Line Tools没有设置导致的 我原来圈起来的那个地方是空白的。

1
2
3
4
5
*** Checking out Alamofire at "4.7.2"
*** Checking out SwiftyJSON at "4.1.0"
*** xcodebuild output can be found in /var/folders/dg/byxrmzh501ggbc21lsnk_z4h0000gn/T/carthage-xcodebuild.aMbcFh.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
*** Building scheme "SwiftyJSON iOS" in SwiftyJSON.xcworkspace

再次运行carthage update --platform iOS就可以了

阅读全文 »
1 2 3 4 … 6
岐

岐

51 日志
32 标签
RSS
© 2023 岐
辽ICP备19012891号