js调用oc方法 UIWebView 跳 到另一个UIWebView

 1 //
 2 //  BusinessListViewController.h
 3 //  LouLiLouWai
 4 //
 5 //  Created by jouhu on 15/7/31.
 6 //  Copyright (c) 2015年 jouhu. All rights reserved.
 7 //
 8
 9 #import <UIKit/UIKit.h>
10
11 @interface BusinessListViewController : UIViewController
12 @property (strong, nonatomic) NSString *urlString;
13 //@property (strong, nonatomic) NSString *titleString;
14
15 @end
  1 //
  2 //  BusinessListViewController.m
  3 //  LouLiLouWai
  4 //
  5 //  Created by jouhu on 15/7/31.
  6 //  Copyright (c) 2015年 jouhu. All rights reserved.
  7 //
  8
  9 #import "BusinessListViewController.h"
 10 #import "BusinessList2ViewController.h"
 11 #import "MBProgressHUD.h"
 12
 13 @interface BusinessListViewController ()<UIWebViewDelegate>
 14 @property (weak, nonatomic) IBOutlet UIWebView *webView;
 15 @end
 16
 17 @implementation BusinessListViewController
 18
 19 - (void)viewDidLoad {
 20     [super viewDidLoad];
 21     // Do any additional setup after loading the view from its nib.
 22     self.automaticallyAdjustsScrollViewInsets = NO;
 23     self.edgesForExtendedLayout = UIRectEdgeNone;
 24
 25     UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] init] ;
 26     backBarButtonItem.title = @"" ;
 27     self.navigationItem.backBarButtonItem = backBarButtonItem ;
 28
 29     self.webView.delegate = self;
 30
 31     NSURL *url = [NSURL URLWithString:self.urlString];
 32     NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
 33     [self.webView loadRequest:urlRequest];
 34 }
 35
 36 - (void)viewWillAppear:(BOOL)animated
 37 {
 38     [super viewWillAppear:animated];
 39
 40 //    self.navigationItem.title = self.titleString;
 41
 42 //    NSURL *url = [NSURL URLWithString:self.urlString];
 43 //    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
 44 //    [self.webView loadRequest:urlRequest];
 45 }
 46
 47 //- (void)viewDidDisappear:(BOOL)animated
 48 //{
 49 //    //清除缓存
 50 //    [self.webView loadHTMLString:@" " baseURL:nil];
 51 //}
 52
 53 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
 54 {
 55     NSString *urlString = [[request URL] absoluteString];
 56     urlString = [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 57     NSLog(@"url1String=%@",urlString);
 58
 59 //    if ([urlString isEqualToString:@"about:blank"]) {
 60 //        return NO;
 61 //    }
 62
 63     NSArray *urlComps = [urlString componentsSeparatedByString:@"://"];
 64
 65     if([urlComps count] && [[urlComps objectAtIndex:0] isEqualToString:@"protocol"])
 66     {
 67         NSArray *arrFucnameAndParameter = [(NSString*)[urlComps objectAtIndex:1] componentsSeparatedByString:@";"];
 68         NSString *funcStr = [arrFucnameAndParameter objectAtIndex:0];
 69
 70         if (1 == [arrFucnameAndParameter count])
 71         {
 72             // 没有参数
 73             if([funcStr isEqualToString:@"doFunc1"])
 74             {
 75                 /*调用本地函数1*/
 76                 NSLog(@"doFunc1");
 77             }
 78         }
 79         else
 80         {
 81             //有参数的
 82             if([funcStr isEqualToString:@"toActivity"])
 83             {
 84                 NSLog(@"doFunc2");
 85                 [self toActivityWithUrl:[arrFucnameAndParameter objectAtIndex:1] title:[arrFucnameAndParameter objectAtIndex:2] share:[arrFucnameAndParameter objectAtIndex:3]];
 86             }
 87         }
 88         return NO;
 89     }
 90     return TRUE;
 91 }
 92
 93 - (void)webViewDidStartLoad:(UIWebView *)webView
 94 {
 95     [MBProgressHUD showHUDAddedTo:self.view animated:YES];
 96 }
 97
 98 - (void)webViewDidFinishLoad:(UIWebView *)webView
 99 {
100     [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
101 }
102
103 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
104 {
105     if ([error code] != NSURLErrorCancelled){
106         [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
107         UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]  delegate:nil cancelButtonTitle:nil otherButtonTitles:@"好", nil];
108         [alterview show];
109     }
110 }
111
112 - (void)toActivityWithUrl:(NSString *)urlString title:(NSString *)titleString share:(NSString *)shareString
113 {
114     BusinessList2ViewController *businessList2ViewController = [[BusinessList2ViewController alloc] initWithNibName:@"BusinessList2ViewController" bundle:[NSBundle mainBundle]];
115     [businessList2ViewController setHidesBottomBarWhenPushed:YES];
116     businessList2ViewController.urlString = [NSString stringWithFormat:@"http://%@",urlString];
117     businessList2ViewController.navigationItem.title = titleString;
118     businessList2ViewController.shareString = shareString;
119     [self.navigationController pushViewController:businessList2ViewController animated:YES];
120 }
121
122 - (void)didReceiveMemoryWarning {
123     [super didReceiveMemoryWarning];
124     // Dispose of any resources that can be recreated.
125 }
126
127 /*
128 #pragma mark - Navigation
129
130 // In a storyboard-based application, you will often want to do a little preparation before navigation
131 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
132     // Get the new view controller using [segue destinationViewController].
133     // Pass the selected object to the new view controller.
134 }
135 */
136
137 @end
时间: 2024-08-10 23:28:56

js调用oc方法 UIWebView 跳 到另一个UIWebView的相关文章

UIWebView中Html中用JS调用OC方法及OC执行JS代码

1.HTML页面 1 <html> 2 3 <head> 4 5 <title>HTML中用JS调用OC方法</title> 6 7 <meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> 8 9 <script> 10 11 function test() 12 13 { 14 15 alert("test

iOS JS 交互之利用系统JSContext实现 JS调用oc方法

ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择如下操作,(拖入的文件夹是蓝色的,相对路径),不然css,js 的路径会存在问题 加载本地html: oc调用js:一句代码搞定 2.js 调用oc js调用oc又分为两种: 1.js端是直接调用方法 这里就要说到ios7才推出的一个新的api    JavaScriptCore,首先我们引入这个类,并初始化一个JSContext对

JS调用OC方法

- (void)myMethod:(CDVInvokedUrlCommand*)command { NSString* echo = [command.arguments objectAtIndex:0]; NSLog(@"%@",echo); POSJiaoyiViewController *sele=[[POSJiaoyiViewController alloc] init]; [self.viewController.navigationController pushViewCo

转载 -- 基于原生JS与OC方法互相调用并传值(附HTML代码)

最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点就是方法的互相调用而已. 本文叙述下如何进行原生的JavaScript交互 本文包括JS调用OC方法并传值,OC调用JS方法并传值 本来想把html放进服务器里面,然后访问,但是觉得如果html在本地加载更有助于理解,特把html放进项目里 HTML代码 <!DOCTYPE html> <html> <head> <meta charset=&

iOS-UIWebView的一些用法(js调oc方法)

源: http://www.jianshu.com/p/c38a8a8edcf0 UIWebView加载远程url NSURL *url = [NSURL URLWithString:@"[http://www.baidu.com]"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [self.webView loadRequest:request]; UIWebView加载本地html 方法1 //加载本地ht

[ios]js调用oc代码(oc)

用途:在ios开发中,经常回用到js调用oc代码的时候,例如在网页上有个拍照和打电话的按钮,想打开系统自带的拍照和电话的时候,就需要用到js调用oc代码的功能. 实现原理:在webView加载html网页的时候,没当发送一个请求,就会调用<UIWebViewDelegate>代理的 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIW

Unity,WebGL, 页面JS调用Unity方法

与WebPlayer类似,在JS中用SendMessage 比如在Unity场景中有一个GameObject,叫A,A上有C#脚本,里面有个方法 public void F(string str) { //do something... } 在发布出的WebGL项目index.html中用JS调用此方法 <script> var gameInstance = UnityLoader.Instantiate("gameContainer", "Build/WebAn

JS调用App方法及App调用JS方法

做App内嵌H5项目时,经常会遇到js与App的交互,最普遍的就是方法的互相调用,那么如何实现方法的互相调用呢? 写在前面: 如果只是小项目且后期扩大的可能性不大的时候,可以忽略,可如果是长期项目的话,那么就需要考虑以下一些问题了. 1. 方法命名规范. 如果考虑到以后会有大量的方法,那么规范化的命名就很重要了,规范化的命名,既保证了名字的唯一性又保证了代码的可读性方便开发过程,也方便后期维护.   举个栗子,  如果现在有一个方法,是关闭webview, js调用app的方法, 如果直接叫cl

JS解析Json 数据并跳转到一个新页面,取消A 标签跳转

JS解析Json 数据并跳转到一个新页面,代码如下 $.getJSON("http://api.cn.abb.com/common/api/staff/employee/" + obj.id, function (result) { window.open("https://abb-my.sharepoint.com/_layouts/15/me.aspx?p=" + result.Email, "_blank") }); 取消A 标签跳转 &l