UIWebView的高級用法

UIWebView的高級用法

#import "MJViewController.h"
#import "MBProgressHUD+Add.h"

@interface MJViewController ()

@end

@implementation MJViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self loadRemoteHTML];
}

#pragma mark 加載遠程的HTML頁面
- (void)loadRemoteHTML {
    NSURL *url = [NSURL URLWithString:@"http://192.168.1.106:8080/MJServer/"];

    self.webView.delegate = self;
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}

#pragma mark 加載其他文件
- (void)loadRemoteTxt {
    NSURL *url = [NSURL URLWithString:@"http://192.168.1.106:8080/MJServer/abc.txt"];

    self.webView.delegate = self;
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}

#pragma mark 加載PDF文件
- (void)loadLocalPDF {
    //[self.webView loadData:<#(NSData *)#> MIMEType:<#(NSString *)#> textEncodingName:<#(NSString *)#> baseURL:<#(NSURL *)#>];

    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/第10章-網絡.pdf"];

    self.webView.delegate = self;
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}

#pragma mark 加載HTML字符串
- (void)loadHTMLString {
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Pictures"];
    [self.webView loadHTMLString:@"<html><body><img src='lufy.png'></body></html>" baseURL:url];
}

#pragma mark - webview代理方法
- (void)webViewDidStartLoad:(UIWebView *)webView {
    NSLog(@"開始加載頁面");
    [MBProgressHUD showMessag:@"哥正在幫你加載..." toView:self.view];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"頁面加載完畢");
    [MBProgressHUD hideHUDForView:self.view animated:YES];

    self.backItem.enabled = self.webView.canGoBack;
    self.forawrdItem.enabled = self.webView.canGoForward;

    self.titleItem.title = [self.webView stringByEvaluatingJavaScriptFromString:@"document.title"];

    //[self.webView stringByEvaluatingJavaScriptFromString:@"fn();"];
}
#pragma mark webview每次加載之前都會調用這個方法
// 如果返回NO,代表不允許加載這個請求
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    // 說明協議頭是ios
    if ([@"ios" isEqualToString:request.URL.scheme]) {
        NSString *url = request.URL.absoluteString;
        NSRange range = [url rangeOfString:@":"];
        NSString *method = [request.URL.absoluteString substringFromIndex:range.location + 1];

        SEL selector = NSSelectorFromString(method);

        if ([self respondsToSelector:selector]) {
            [self performSelector:selector];
        }

        return NO;
    }

    return YES;
}

#pragma mark - 提供一個接口方法給JS調用
- (void)openCamera {
    NSLog(@"打開了照相機");
}

- (void)call {
    NSLog(@"打電話");
}

#pragma mark - 按鈕方法
#pragma mark 前進
- (void)forawrd {
    [self.webView goForward];
}
#pragma mark 後退
- (void)back {
    [self.webView goBack];
}
@end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章