国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

iOS-JS交互(WebViewJavascriptBridge)

2019-11-14 18:36:25
字體:
來源:轉載
供稿:網友
//
//  ViewController.m
//  JSAndIOS交互
//
//  Created by apple on 15/7/31.
//  Copyright (c) 2015年 tqh. All rights reserved.
//

#import "ViewController.h"
#import "WebViewjavascriptBridge.h"
@interface ViewController ()<UIWebViewDelegate>
@PRoperty WebViewJavascriptBridge* bridge;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    if (_bridge) { return; }
    
    UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:webView];
    
    [WebViewJavascriptBridge enableLogging];
    
    //網頁交互,網頁發送消息給程序
    _bridge = [WebViewJavascriptBridge bridgeForWebView:webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) {
        NSLog(@"從JS收到消息: %@", data);
        responseCallback(@"back");
    }];
    //網頁交互,網頁發送消息給程序
    [_bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback) {
        NSLog(@"testObjcCallback called: %@", data);
        responseCallback(@"back");
    }];
    [self renderButtons:webView];
    [self loadExamplePage:webView];
}

- (void)renderButtons:(UIWebView*)webView {
    UIFont* font = [UIFont fontWithName:@"HelveticaNeue" size:12.0];
    
    UIButton *messageButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [messageButton setTitle:@"發送消息" forState:UIControlStateNormal];
    [messageButton addTarget:self action:@selector(sendMessage:) forControlEvents:UIControlEventTouchUpInside];
    [self.view insertSubview:messageButton aboveSubview:webView];
    messageButton.frame = CGRectMake(1041410035);
    messageButton.titleLabel.font = font;
    messageButton.backgroundColor = [UIColor colorWithWhite:1 alpha:0.75];
    
    UIButton *callbackButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [callbackButton setTitle:@"調用處理程序" forState:UIControlStateNormal];
    [callbackButton addTarget:self action:@selector(callHandler:) forControlEvents:UIControlEventTouchUpInside];
    [self.view insertSubview:callbackButton aboveSubview:webView];
    callbackButton.frame = CGRectMake(11041410035);
    callbackButton.titleLabel.font = font;
    
    UIButton* reloadButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [reloadButton setTitle:@"重新加載webview" forState:UIControlStateNormal];
    [reloadButton addTarget:webView action:@selector(reload) forControlEvents:UIControlEventTouchUpInside];
    [self.view insertSubview:reloadButton aboveSubview:webView];
    reloadButton.frame = CGRectMake(21041410035);
    reloadButton.titleLabel.font = font;
}


//加載網頁
- (void)loadExamplePage:(UIWebView*)webView {
    //ExampleApp加載本地網頁
    NSString* htmlPath = [[NSBundle mainBundle] pathForResource:@"ExampleApp" ofType:@"html"];
    NSString* appHtml = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
    NSURL *baseURL = [NSURL fileURLWithPath:htmlPath];
    [webView loaDHTMLString:appHtml baseURL:baseURL];
}

#pragma mark - 事件監聽

- (void)sendMessage:(id)sender {
    //發送消息
    [_bridge send:@"oc發送消息" responseCallback:^(id response) {
        NSLog(@"sendMessage got response: %@", response);
    }];
}

- (void)callHandler:(id)sender {
    //發送消息
    id data = @{ @"name"@"value" };
    [_bridge callHandler:@"testJavascriptHandler" data:data responseCallback:^(id response) {
        NSLog(@"testJavascriptHandler responded: %@", response);
    }];
}

#pragma mark - UIWebViewDelegate

- (void)webViewDidStartLoad:(UIWebView *)webView {
    NSLog(@"webViewDidStartLoad");
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"webViewDidFinishLoad");
}
@end

 github下載:https://github.com/marcuswestin/WebViewJavascriptBridge

 百度云下載:http://pan.baidu.com/s/1kTnbpTd

 js學習:http://www.survivalescaperooms.com.cn/

 http://www.fenesky.com/blog/2014/04/24/how-javascriptcore-works.html

 http://www.survivalescaperooms.com/ider/p/introduction-to-ios7-javascriptcore-framework.html 

 webkit學習:http://blog.csdn.net/column/details/webkit-in-deep.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大理市| 双峰县| 郑州市| 樟树市| 祁门县| 兴仁县| 玉林市| 清丰县| 林西县| 邹平县| 隆子县| 杭锦后旗| 衡阳县| 田阳县| 永登县| 锡林郭勒盟| 泽普县| 巧家县| 洛隆县| 会理县| 义马市| 碌曲县| 于都县| 额尔古纳市| 巴林左旗| 孟州市| 天门市| 富蕴县| 平罗县| 包头市| 调兵山市| 浮山县| 顺义区| 伊金霍洛旗| 依兰县| 克东县| 泗阳县| 丽江市| 皮山县| 庆元县| 通榆县|