{"id":144,"date":"2016-03-07T15:17:15","date_gmt":"2016-03-07T07:17:15","guid":{"rendered":"http:\/\/www.yusian.com\/blog\/?p=144"},"modified":"2016-07-14T22:51:26","modified_gmt":"2016-07-14T14:51:26","slug":"ios%e5%af%bc%e8%88%aa%e6%a0%8f%e4%b8%8a%e5%ae%9e%e7%8e%b0webview%e7%9a%84%e7%bd%91%e9%a1%b5%e8%bf%94%e5%9b%9e%e5%8f%8a%e5%85%b3%e9%97%ad%e6%8c%89%e9%92%ae","status":"publish","type":"post","link":"https:\/\/www.yusian.com\/blog\/project\/2016\/03\/07\/151715144.html","title":{"rendered":"iOS\u5bfc\u822a\u680f\u4e0a\u5b9e\u73b0webView\u7684\u7f51\u9875\u8fd4\u56de\u53ca\u5173\u95ed\u6309\u94ae"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-145\" src=\"http:\/\/www.yusian.com\/blog\/wp-content\/uploads\/2016\/07\/QQ20160307-0@2x.jpg\" alt=\"QQ20160307-0@2x\" width=\"280\" height=\"497\" \/><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-146\" src=\"http:\/\/www.yusian.com\/blog\/wp-content\/uploads\/2016\/07\/Simulator-Screen-Shot-2016\u5e743\u67087\u65e5-\u4e0b\u53482.56.23.jpg\" alt=\"Simulator-Screen-Shot-2016\u5e743\u67087\u65e5-\u4e0b\u53482.56.23\" width=\"280\" height=\"497\" \/><br \/>\n<strong>1\u3001\u529f\u80fd\u63cf\u8ff0\uff1a<\/strong><br \/>\n1.1\u3001webView\u4e2d\u52a0\u8f7d\u591a\u5c42\u7f51\u9875\u65f6\u9700\u8981\u5b9e\u73b0\u6d4f\u89c8\u5668\u7684\u201c\u8fd4\u56de\u201d\u529f\u80fd\uff1b<br \/>\n2.2\u3001\u540c\u65f6\u9700\u8981\u5b9e\u73b0iOS\u81ea\u8eab\u7684\u8fd4\u56de\u5bfc\u822a\u63a7\u5236\u5668\u7684\u4e0a\u4e00\u4e2a\u9875\u9762\uff1b<br \/>\n<strong>2\u3001\u5e94\u7528\u573a\u666f<\/strong><br \/>\n2.1\u3001webView<br \/>\n<strong>3\u3001\u5b9e\u73b0\u539f\u7406\uff1a<\/strong><br \/>\n3.1\u3001\u901a\u8fc7webview\u7684canGoback\u6765\u5224\u65ad\u662f\u5426\u80fd\u591f\u8fd4\u56de\uff0c\u4ece\u800c\u51b3\u5b9a\u201c\u5173\u95ed\u201d\u6309\u94ae\u7684\u9690\u85cf\u4e0e\u663e\u793a\uff1b<br \/>\n3.2\u3001\u5728webview\u7684\u4ee3\u7406\u65b9\u6cd5webViewDidStartLoad\u3001webViewDidFinishLoad\u4e24\u4e2a\u65b9\u6cd5\u4e2d\u5224\u65ad\uff1b<br \/>\n3.3\u3001\u4fee\u6539\u5bfc\u822a\u680f\u7684leftBarbuttonItems\u6765\u589e\u52a0\u6216\u5220\u9664\u201c\u5173\u95ed\u201d\u6309\u94ae\uff1b<br \/>\n3.4\u3001\u901a\u8fc7canGoback\u6765\u4fee\u6539\u8fd4\u56de\u6309\u94ae\u7684\u4e8b\u4ef6\uff1b<!--more--><br \/>\n<strong>4\u3001\u90e8\u5206\u4ee3\u7801<\/strong><br \/>\n4.1\u3001SAWebViewCtrl.m<\/p>\n<pre lang=\"objc\" line=\"1\">\/\/\n\/\/? SAWebViewCtrl.m\n\/\/? Test\n\/\/\n\/\/? Created by \u4f59\u897f\u5b89 on 16\/3\/7.\n\/\/? Copyright ? 2016\u5e74 Sian. All rights reserved.\n\/\/\n?\n#import \"SAWebViewCtrl.h\"\n#import \"UIBarButtonItem+SA.h\"\n?\n@interface SAWebViewCtrl () \n?\n@property (nonatomic, strong) UIWebView *webView;\n?\n@property (nonatomic, strong) UIBarButtonItem *backItem;\n?\n@property (nonatomic, strong) UIBarButtonItem *closeItem;\n?\n@end\n?\n@implementation SAWebViewCtrl\n?\n- (void)viewDidLoad\n{\n????[super viewDidLoad];\n????self.navigationItem.title = @\"WebView\";\n????\/\/ \u6dfb\u52a0webView\n????self.webView = [[UIWebView alloc] init];\n????self.webView.delegate = self;\n????self.webView.frame = self.view.bounds;\n????self.webView.autoresizingMask = 255;\n????[self.view addSubview: self.webView];\n????\/\/ \u521d\u59cb\u5316\u8fd4\u56de\u3001\u5173\u95ed\u4e24\u4e2a\u6309\u94ae\n????self.backItem = [UIBarButtonItem backButtonWithTarget:self action:@selector(backEven:)];\n????self.closeItem = [[UIBarButtonItem alloc] initWithTitle:@\"\u5173\u95ed\" style:UIBarButtonItemStylePlain target:self action:@selector(popPage)];\n????[self setLeftBarButton];\n????\/\/ \u52a0\u8f7d\u7f51\u9875\n????NSURL *url = [NSURL URLWithString:@\"http:\/\/www.baidu.com\"];\n????[self.webView loadRequest:[NSURLRequest requestWithURL:url]];\n}\n?\n#pragma mark - \u7f51\u9875\u4ee3\u7801\u65b9\u6cd5\n\/\/\/ \u7f51\u9875\u5f00\u59cb\u52a0\u8f7d\u65f6\u8c03\u7528\n- (void)webViewDidStartLoad:(UIWebView *)webView\n{\n????[self setLeftBarButton];\n????[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];\n}\n\/\/\/ \u7f51\u9875\u52a0\u8f7d\u5b8c\u6bd5\u65f6\u8c03\u7528\n- (void)webViewDidFinishLoad:(UIWebView *)webView\n{\n????[self setLeftBarButton];\n????[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];\n}\n?\n#pragma mark - \u4e8b\u4ef6\u54cd\u5e94\n\/\/\/ \u8fd4\u56de\u6309\u94ae\u4e8b\u4ef6\n- (void)backEven:(UIButton *)button\n{\n????if ([self.webView canGoBack]){\n????????[self.webView goBack];\n????}else{\n????????[self popPage];\n????}\n}\n\/\/\/ \u5173\u95ed\u4e8b\u4ef6\n- (void)popPage\n{\n????[self.navigationController popViewControllerAnimated:YES];\n}\n\/\/\/ \u5237\u65b0\u5de6\u4e0a\u89d2\u6309\u94ae\n- (void)setLeftBarButton\n{\n????if ([self.webView canGoBack]){\n????????[self.navigationItem setLeftBarButtonItems:@[self.backItem, self.closeItem]];\n????}else{\n????????[self.navigationItem setLeftBarButtonItems:@[self.backItem]];\n????}\n}\n@end<\/pre>\n<p><strong>5\u3001\u6e90\u4ee3\u7801\u4e0b\u8f7d<\/strong><br \/>\n<a href=\"http:\/\/www.yusian.com\/blog\/wp-content\/uploads\/2016\/07\/Test.zip\">Test<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001\u529f\u80fd\u63cf\u8ff0\uff1a 1.1\u3001webView\u4e2d\u52a0\u8f7d\u591a\u5c42\u7f51\u9875\u65f6\u9700\u8981\u5b9e\u73b0\u6d4f\u89c8\u5668\u7684\u201c\u8fd4\u56de\u201d\u529f\u80fd\uff1b 2.2\u3001\u540c\u65f6\u9700\u8981\u5b9e\u73b0iOS\u81ea\u8eab\u7684\u8fd4\u56de\u5bfc\u822a\u63a7\u5236\u5668\u7684\u4e0a\u4e00\u4e2a\u9875\u9762\uff1b 2\u3001\u5e94\u7528\u573a\u666f 2.1\u3001webView 3\u3001\u5b9e\u73b0\u539f\u7406\uff1a 3.1\u3001\u901a\u8fc7webview\u7684canGoback\u6765\u5224\u65ad\u662f\u5426\u80fd\u591f\u8fd4\u56de\uff0c\u4ece\u800c\u51b3\u5b9a\u201c\u5173\u95ed\u201d\u6309\u94ae\u7684\u9690\u85cf\u4e0e\u663e\u793a\uff1b 3.2\u3001\u5728webview\u7684\u4ee3\u7406\u65b9\u6cd5webViewDidStartLoad\u3001webViewDidFinishLoad\u4e24\u4e2a\u65b9\u6cd5\u4e2d\u5224\u65ad\uff1b 3.3\u3001\u4fee\u6539\u5bfc\u822a\u680f\u7684leftBarbuttonItems\u6765\u589e\u52a0\u6216\u5220\u9664\u201c\u5173\u95ed\u201d\u6309\u94ae\uff1b 3.4\u3001\u901a\u8fc7canGoback\u6765\u4fee\u6539\u8fd4\u56de\u6309\u94ae\u7684\u4e8b\u4ef6\uff1b<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[17],"class_list":["post-144","post","type-post","status-publish","format-standard","hentry","category-project","tag-skill"],"_links":{"self":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":0,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}