diff --git a/SVWebViewController/SVWebViewController.h b/SVWebViewController/SVWebViewController.h index 42e9dfe..1946a38 100644 --- a/SVWebViewController/SVWebViewController.h +++ b/SVWebViewController/SVWebViewController.h @@ -12,5 +12,7 @@ - (id)initWithAddress:(NSString*)urlString; - (id)initWithURL:(NSURL*)URL; +- (id)initWithHTMLString:(NSString*)HTMLString; +- (id)initWithHTMLString:(NSString*)HTMLString customURL:(NSURL*)URL; @end diff --git a/SVWebViewController/SVWebViewController.m b/SVWebViewController/SVWebViewController.m index 2e08ebc..7ab8406 100644 --- a/SVWebViewController/SVWebViewController.m +++ b/SVWebViewController/SVWebViewController.m @@ -20,9 +20,13 @@ @interface SVWebViewController () @property (nonatomic, strong) UIWebView *webView; @property (nonatomic, strong) NSURL *URL; +@property (nonatomic, strong) NSString *tempFilePath; +@property (nonatomic, strong) NSURL *customURL; - (id)initWithAddress:(NSString*)urlString; - (id)initWithURL:(NSURL*)URL; +- (id)initWithHTMLString:(NSString*)HTMLString; +- (id)initWithHTMLString:(NSString*)HTMLString customURL:(NSURL*)URL; - (void)loadURL:(NSURL*)URL; - (void)updateToolbarItems; @@ -59,6 +63,31 @@ - (id)initWithURL:(NSURL*)pageURL { return self; } +- (id)initWithHTMLString:(NSString*)pageHTMLString { + + if(self = [super init]) { + NSURL *tmpDirURL = [NSURL fileURLWithPath:NSTemporaryDirectory() isDirectory:YES]; + NSURL *filePath = [[tmpDirURL URLByAppendingPathComponent:@"SVWebTemp"] URLByAppendingPathExtension:@"html"]; + self.tempFilePath = [filePath path]; + [pageHTMLString writeToFile:self.tempFilePath atomically:YES encoding:NSUTF8StringEncoding error:nil]; + + self.URL = filePath; + } + + return self; +} + +- (id)initWithHTMLString:(NSString*)pageHTMLString customURL:(NSURL*)pageCustomURL { + + if(self = [super init]) { + self = [self initWithHTMLString:pageHTMLString]; + + self.customURL = pageCustomURL; + } + + return self; +} + - (void)loadURL:(NSURL *)pageURL { [self.webView loadRequest:[NSURLRequest requestWithURL:pageURL]]; } @@ -174,7 +203,13 @@ - (UIBarButtonItem *)actionBarButtonItem { - (void)updateToolbarItems { self.backBarButtonItem.enabled = self.self.webView.canGoBack; self.forwardBarButtonItem.enabled = self.self.webView.canGoForward; - self.actionBarButtonItem.enabled = !self.self.webView.isLoading; + + if ([[self.self.webView.request.URL path] isEqualToString:self.tempFilePath] && self.customURL == NULL) { + self.actionBarButtonItem.enabled = FALSE; // + } + else { + self.actionBarButtonItem.enabled = !self.self.webView.isLoading; + } UIBarButtonItem *refreshStopBarButtonItem = self.self.webView.isLoading ? self.stopBarButtonItem : self.refreshBarButtonItem; @@ -263,8 +298,14 @@ - (void)stopClicked:(UIBarButtonItem *)sender { - (void)actionButtonClicked:(id)sender { NSArray *activities = @[[SVWebViewControllerActivitySafari new], [SVWebViewControllerActivityChrome new]]; + UIActivityViewController *activityController; - UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[self.self.webView.request.URL] applicationActivities:activities]; + if ([[self.self.webView.request.URL path] isEqualToString:self.tempFilePath]) { //&& self.customURL != NULL + activityController = [[UIActivityViewController alloc] initWithActivityItems:@[self.customURL] applicationActivities:activities]; + } + else { + activityController = [[UIActivityViewController alloc] initWithActivityItems:@[self.self.webView.request.URL] applicationActivities:activities]; + } [self presentViewController:activityController animated:YES completion:nil]; } diff --git a/SVWebViewController/zh-Hant.lproj/SVWebViewController.strings b/SVWebViewController/zh-Hant.lproj/SVWebViewController.strings index af4f4a4..111e1dd 100644 --- a/SVWebViewController/zh-Hant.lproj/SVWebViewController.strings +++ b/SVWebViewController/zh-Hant.lproj/SVWebViewController.strings @@ -1,3 +1,3 @@ -// Copyright (c) 2013 James Stout -"Open in Safari" = "打開Safari"; -"Open in Chrome" = "打開Chrome"; \ No newline at end of file +// Copyright (c) 2013 Frank Wu +"Open in Safari" = "在 Safari 開啓"; +"Open in Chrome" = "在 Chrome 開啓"; \ No newline at end of file