美文网首页
2017.12技术点记录

2017.12技术点记录

作者: 光彩影 | 来源:发表于2017-12-29 18:49 被阅读24次

每月一总结

前言:
12月是忙碌的一个月,每天任务安排很满,但是过得很充实,但也很有压力
/(ㄒoㄒ)/~~

本月总共有几个技术点:1.我的页面模板化,2.UIWebview与js交换 3.UIWebview登录与退出状态同步 4.一些复杂页面 5.抢购倒计时实现

总结比较有意义的技术点2与3.(uiwebview与js交互并账号登录与退出账号状态同步)

  1. 定义js交互接口。(js会调用我们定义的接口)
#import <JavaScriptCore/JavaScriptCore.h>

@protocol WebApiInvoker <JSExport>
//给web数据
-(void)loadApp;
- (void)openApp:(NSString *)json;

// type => none|share
- (void)showMenu:(NSString *)type;

@end
  1. 必需要在webView加载完才能js赋值
#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//    self.title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
    
    self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    self.jsContext[@"app"] = self;
    self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {
        context.exception = exceptionValue;
        NSLog(@"异常信息:%@", exceptionValue);
    };
}
  1. 执行js脚本语言方法
 [self.webView stringByEvaluatingJavaScriptFromString:@"方法名"];
  1. uiwebview登录状态保存

uiwebview登录状态保存,最好的方式是采用cookie保存。(在app启动的时候全局设置cookie如果需要保存,就全局保存)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSHTTPCookieStorage *cook = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    [cook setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
}
  1. uiwebview退出状态清除cookie
//cookie清除
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
    [storage deleteCookie:cookie];
}

本月需记住点:

  1. uitableview 里面的高度是先算高度,后赋值的。
  2. webview 加载urlString,必须先处理链接(1.链接去空格处理 2.链接url解码 3.链接url编码)
    self.mURLString = [self.mURLString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];//去掉空格

    //iOS中文网址路径转换URLEncode
    self.mURLString = [self.mURLString URLDecodedString];
    self.mURLString = [self.mURLString URLEncodedString];
    [MBAWebShareSheetManager manager].mLink = self.mURLString;
    NSURL *url = [NSURL URLWithString:self.mURLString];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    [self.mWebView loadRequest:urlRequest];
#import "NSString+URL.h"

@implementation NSString (URL)
/**
 *  URLEncode
 */
- (NSString *)URLEncodedString
{
    return [self stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}

/**
 *  URLDecode
 */
-(NSString *)URLDecodedString
{
    NSString *decodedString = [self stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ];
    return decodedString;
}

@end

相关文章

  • 2017.12技术点记录

    每月一总结 前言:12月是忙碌的一个月,每天任务安排很满,但是过得很充实,但也很有压力/(ㄒoㄒ)/~~ 本月总共...

  • 2017.12月流水记录

    阅读 《富爸爸财务自由之路》 12.4 阅毕 《富爸爸商学院》 12.13阅读 《有钱人使用长钱包》( 200X倍...

  • 2017.10技术点记录

    iOS 11 适配 1.1. tableview适配 1.2 HUD不显示HUD 必须添加在窗口的keyWindo...

  • 雷达图像解译技术.pdf

    下载地址: 雷达图像解译技术.pdf 作 者 :焦李成著 出版发行 : 北京:国防工业出版社 , 2017.12 ...

  • 2017.10-2017.12读书记录

    2017.10-2017.12读书记录 35本 罗伊-鲍迈斯特——《意志力》 严歌苓——《芳华》《花儿与少年》 万...

  • 2017.12

    只要懂得操纵情报,真相是什么谁也不知道。 ——伊坂幸太郎《摩登时代》 所以我就想,真正的老人福利并不是安个扶手之类...

  • 2017.12

  • 闫贵忠老师与孩子们论道(一) 守住成长的初心,为自己的一辈子负责

    刘娜记录整理 2017.12 习近平,这是现在共产党的总书记。为什么讲共产党的十八大呢?十八大之后,习近平...

  • 翻译练习

    2017.12The Dongting Lake is located in the northeast of H...

  • 2017.12.。。。

    进入十二月了,该考研的考研,该期末的期末,也快体育考试了。。。。长拳,哈哈哈真心不太会打啊。。。为什么人家的体育课...

网友评论

      本文标题:2017.12技术点记录

      本文链接:https://www.haomeiwen.com/subject/rdrwgxtx.html