2018-01-23 - hexo 博客搭建

支付问题

  • 微信支付

Hexo 搭建博客

配置环境

  • 安装 Node(必须

    • 作用:用来生成静态页面的 到 Node.js 官网下载相应平台的最新版本,一路安装即可。
  • 安装Git(必须

    • 作用:把本地的 hexo 内容提交到 github 上去. 安装 Xcode 就自带有 Git,我就不多说了。
  • 申请GitHub(必须

    • 作用:是用来做博客的远程创库、域名、服务器之类的,怎么与本地 hexo 建立连接等下讲。 github 账号我也不再啰嗦了,没有的话直接申请就行了,跟一般的注册账号差不多,SSH Keys,看你自己了,可以不配制,不配置的话以后每次对自己的博客有改动提交的时候就要手动输入账号密码,配置了就不需要了,怎么配置我就不多说了,网上有很多教程。
Read more   2018/1/23 posted in  工作总结

2018-01-22 - SDK 相关

  • 接入 初始化
  • YourAppToken 是后台创建的 iOS 端只需要调用就行

SDK 开发

在SDK开发中,一般会需要经过几个流程,

# 开发SDK
# 测试SDK
# 把SDK交付给使用人员

这些东西看似步骤多,过程繁琐,而且每修改一次SDK就需要重复一次上述的过程,增加了一些不必要的操作。

当然,如果我们在SDK设计之初就有一个好的项目架构,就可以极大简化开发流程,提高开发效率.

pushToViewControllerWhenClickPushMessageWith - 这个是极光推送的方法

#pragma mark -- 程序点击推送消息进入的方法
// iOS 10 Support
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
    // Required
    NSDictionary * userInfo = response.notification.request.content.userInfo;
    if([response.notification.request.triggerisKindOfClass:[UNPushNotificationTriggerclass]]) {
        [JPUSHServicehandleRemoteNotification:userInfo];
        
         [selfpushToViewControllerWhenClickPushMessageWith:userInfo]; //跳转页面
    }
    completionHandler();  // 系统要求执行这个方法
}

#pragma mark -- 程序跳转方法
-(void)pushToViewControllerWhenClickPushMessageWith:(NSDictionary*)msgDic{
    
    //将字段存入本地,因为要在你要跳转的页面用它来判断
   NSUserDefaults*pushJudge = [NSUserDefaultsstandardUserDefaults];
  //  [pushJudge setObject:@"push"forKey:@"push"];
//判断后台传送的标示(用于跳转哪一个页面的判断)
    if ([[msgDicobjectForKey:@"type"]isEqualToString:@"active"]){
//得到根部控制器
        TabBarController *hxl=(TabBarController *)self.window.rootViewController;
//得到控制器中的导航栏
        UINavigationController *nav=hxl.selectedViewController;
//得到导航栏对应的控制器
        UIViewController  *controller=(UIViewController *)nav.visibleViewController;
//进行跳转页面
        TSProductDetailViewController *pro=[[TSProductDetailViewControlleralloc]init];
        
         pro.detailid=[[msgDicobjectForKey:@"id"]integerValue];        
        [controller.navigationControllerpushViewController:pro animated:YES];
      
    }elseif ([[msgDicobjectForKey:@"type"]isEqualToString:@"dynamics"]){
        TabBarController *hxl=(TabBarController *)self.window.rootViewController;
        hxl.selectedIndex=2;
    }
}

#pragma mark iOS 10 前台收到通知(远程推送和本地通知)
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
    NSDictionary * userInfo = notification.request.content.userInfo;
    if([notification.request.triggerisKindOfClass:[UNPushNotificationTriggerclass]]) {
        /// iOS10处理远程推送
        [JPUSHServicehandleRemoteNotification:userInfo];
        /// 前台收到推送的时候转成本地通知 ===========================
        [self popAlert:userInfo];
        
    }else{
        /// iOS10处理本地通知添加到通知栏 ==============================
        completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert);
        
        
    }
    // 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以选择设置
}

//在前台的时候 我这里就直接弹出提示框
-(void)popAlert:(NSDictionary *)pushMessageDic{
    NSLog(@"%@",pushMessageDic);
    NSString *title;
    if([[pushMessageDicobjectForKey:@"type"]isEqualToString:@"active"])
    {
     title=@"您有新的活动推送";
        [JCAlertViewshowTwoButtonsWithTitle:titleMessage:             [[pushMessageDicobjectForKey:@"aps"]objectForKey:@"alert"]ButtonType:JCAlertViewButtonTypeCancelButtonTitle:@"取消"Click:^{
            
        } ButtonType:JCAlertViewButtonTypeDefaultButtonTitle:@"查看"Click:^{
            [selfpushToViewControllerWhenClickPushMessageWith:pushMessageDic];
            
        }];
    }elseif([[pushMessageDic objectForKey:@"type"]isEqualToString:@"dynamics"]){
        title=@"您有新的评论消息";
        [JCAlertViewshowOneButtonWithTitle:titleMessage:[[pushMessageDicobjectForKey:@"aps"]objectForKey:@"alert"]ButtonType:JCAlertViewButtonTypeCancelButtonTitle:@"取消"Click:^{
            
        }];
      
    }
    
   
}


测试数据

  • 后台给了个接口
    • 传进 IDFA 用来收集用户注册激活数据

1-
2 -

3 -

4 -

架构

2018/1/22 posted in  工作总结

2018-01-20 - iPad 问题和简单问题

2018/1/20 posted in  工作总结

2018-01-18 - SVN 使用

  • SVN 库

  • 调试以及近期上传的代码都可以在这里查看

  • SVN 浏览器打开

SVN 合作开发使用注意事项

  • .a 文件问题

2018/1/18 posted in  工作总结

2018-01-17 - Swift 4.0 入坑

while 循环

  • While 循环执行一个合集的语句指导条件变成 False。

  • 这种循环最好在第一次循环之后还有未知数量的遍历时使用。

  • Swift 提供了两种 while 循环

    • While 在每次循环开始的时候计算它自己的条件;
    while condition {
    
    statements
    
    } 
    
    • repeat-while 在每次循环结束的时候计算它自己的条件。
    repeat {
    
        statements
    
    } while condition
    

    条件语句

  • Swift 提供了两种方法来给你的代码添加条件分支,就是所谓的 if 语句和 switch 语句。

  • if 语句来判定简单的条件,比如少量的可能性。

  • switch 语句则适合更复杂的条件,比如多个可能的组合,并且在模式匹配的情况下更加有用,可以帮你选择一段合适的代码分支来执行。

    switch some value to consider {
    case value 1:
        respond to value 1
    case value 2,
    value 3:
        respond to value 2 or 3
    default:
        otherwise, do something else
    }
    

函数

# 后面没写了是因为我暂时没事做就被安排去做其他的事去了

# 最后我买了本书自己学
2018/1/17 posted in  工作总结

2018-01-16 - 相册的功能

保存图片到相册的功能

权限问题

masonry 自动布局

2018/1/16 posted in  工作总结