Objective-C 코드 와 Javascript 코드 가 서로 인 스 턴 스 를 호출 합 니 다.

지금 좋 은 IOS. 앱 은 가끔 웹 페이지 의 내용 과 관련 이 있 고 물론 사용자 체험 을 증가 시 키 며 앱 의 기능 을 효과적으로 나타 낸다.
본인 은 프로젝트 에서 이 부분 기능 을 사용 하기 때문에 기록 을 하 세 요!
JS 호출 OC
많은 응용 프로그램 에서 웹 페이지 를 다소 호출 하여 화려 한 효 과 를 얻 었 습 니 다.이른바 JS 호출 OC..............................................................
버튼 을 누 르 면 화면 을 뛰 고 뛰 는 동작 은 OC 코드 로 이 루어 집 니 다.
OC 호출 JS
예 를 들 어 우리 OC 코드 는 사용자 이름 을 입력 하고 입력 이 완료 되면 웹 페이지 에 표시 하 며 사용자 이름 을 표시 하 는 입력 상 자 를 만 들 었 습 니 다.
1.webView 의 대리 방법 을 이용 하여 OC 와 JS 의 상호 호출 을 실현 합 니 다.
속성 생 성
@property(nonatomic,strong)UIWebView * webView;
웹 뷰 프로 토 콜 준수 UIWebView Delegate

-(void)webViewLoad{
  
  NSURL * url = [[NSURL alloc]initWithString:@"http://www.baidu.com"];
  self.webView = [[UIWebView alloc]initWithFrame:self.view.bounds];
  NSURLRequest * request = [[NSURLRequest alloc]initWithURL:url];
  self.webView.delegate = self;
  [self.webView loadRequest:request];
  
  [self.view addSubview:self.webView];
  
}

//JS  OC
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
  NSString * str = request.URL.relativeString;
  if ([str isEqualToString:@"http://www.baidu.com/"]) {
    NSLog(@"    ");
  }
  return YES;
}
//OC  JS
-(void)webViewDidFinishLoad:(UIWebView *)webView{
  NSString * str = [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(""\"index-kw""\").value=""\"li""\""];
  NSLog(@"webViewDidFinishLoad=%@",str);
  
}

2.제3자 의 프레임 워 크 를 이용 하여 실현 합 니 다(html 엔 드 와 통 일 된 방법의 이름 이 필요 합 니 다)

-(void)webViewBridge{
  self.webView = [[UIWebView alloc]initWithFrame:[UIScreen mainScreen].bounds];
  
  NSString * path = [[NSBundle mainBundle]pathForResource:@"ExampleApp.html" ofType:nil];
  NSURL * url = [[NSURL alloc]initFileURLWithPath:path];
  
  [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
  self.webView.delegate = self;
  [self.view addSubview:self.webView];
  //      
  [WebViewJavascriptBridge enableLogging];
  //    
   self.bridge =  [WebViewJavascriptBridge bridgeForWebView:self.webView];
  //    
  [self.bridge setWebViewDelegate:self];
  //JS  OC(testObjcCallback  html       )
  [self.bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback) {
    NSLog(@"     ");
    self.view.backgroundColor= [UIColor blackColor];
    responseCallback(@"     ");
  }];
  
  
}


//OC  JS

-(void)webViewDidFinishLoad:(UIWebView *)webView{
  NSLog(@"webViewDidFinishLoad");
  [self.bridge callHandler:@"registerHandler"];
}

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기