`

UIWebView无法执行代理方法

 
阅读更多

使用UIWebView的方式无法执行代理方法,为什么无法执行呢?我也不知道,项目太赶,没有时间去研究,但是后来使用代码的方式解决了。

1.新建一个UIViewController subclass

 

2.h

UIViewController<UIWebViewDelegate>

{

    UIActivityIndicatorView *activityIndicator;

    UIWebView *webViewForCUD;

}

 

@property (nonatomic, retain) IBOutlet UIWebView *webViewForCUD;


3.m

-(void)loadView

{

    [super loadView];

    self.navigationItem.title = NSLocalizedString(@"常用资料", nil);

 

    webViewForCUD  = [[ UIWebView   allocinitWithFrame: CGRectMake(0,0,320,372 )]; 

 

    [ webViewForCUD   setUserInteractionEnabled: YES ];  //是否支持交互

 

    [ webViewForCUD   setDelegate: self ];     //委托

 

    //[ webViewForCUD   setOpaque: NO ];      //透明,背景变成灰色的

 

    [ self . view  addSubview : webViewForCUD];    //加载到自己的view

 

 

    NSURL *url;

 

    

    url = [[ NSURL alloc] initWithString:@"http://58.23.127.103:8080/fxt/water.do?method=list"];

 

    [ webViewForCUD loadRequest:[ NSURLRequest requestWithURL: url ]];    //笔者习惯采用loadRequest方式,你可以采用其他方式

 

   

    activityIndicator  = [[ UIActivityIndicatorView   allocinitWithFrame: CGRectMake( 10102020 )];//需要在.h文件中进行声明

 

    [ activityIndicator  setCenterwebViewForCUD. center ];//位置

 

    [ activityIndicator   setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleGray];   //颜色根据不同的界面自己调整

 

    [ self . view  addSubviewactivityIndicator];

 

 

}

 

- (void )webViewDidFinishLoad:(UIWebView *)webView

{

 

    [activityIndicator stopAnimating];

 

    

    NSLog(@"webViewDidFinishLoad  ok??");

 

}

 

- (void )webViewDidStartLoad:(UIWebView *)webView

{     

 

    [ activityIndicator startAnimating ]; 

 

    NSLog(@"webViewDidStartLoad  ok??");

 

}


分享到:
评论

相关推荐

    UIWebView与 javascript的交互

    然后调用`window.location.href`或`window.webkit.messageHandlers`来触发UIWebView的代理方法,如`- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:...

    UIWebViewDemo

    此外,`UIWebView`支持JavaScript与Objective-C之间的交互,通过实现`UIWebViewDelegate`的`webView:shouldStartLoadWithRequest:navigationType:`方法,可以拦截页面加载请求并进行处理,甚至执行自定义的行为。...

    UIWebView的使用

    4. **JavaScript交互**:UIWebView支持与JavaScript的交互,你可以通过`stringByEvaluatingJavaScriptFromString:`方法执行JavaScript代码并获取结果。这在你需要获取网页数据或操作DOM时非常有用。 5. **处理错误*...

    iPhone开发之UIWebView示例程序

    4. **UIWebView的代理方法**:为了获取UIWebView的加载状态和错误信息,我们需要遵循`UIWebViewDelegate`协议,并实现相关方法。比如`- (void)webViewDidStartLoad:(UIWebView *)webView`在网页开始加载时调用,`- ...

    UIWebView Demo代码

    UIWebView有一些代理方法可以监听加载状态,如`webViewDidStartLoad:`(开始加载)、`webViewDidFinishLoad:`(加载完成)和`webView:didFailLoadWithError:`(加载失败)。你可以通过设置`UIWebViewDelegate`来...

    IOS UIWebView Demo

    5. **JavaScript交互**:UIWebView支持与JavaScript的交互,你可以通过`stringByEvaluatingJavaScriptFromString:`方法执行JavaScript代码,并获取返回结果。这对于获取网页上的数据或改变网页状态非常有用。 6. **...

    UIWebView和js交互demo1

    UIWebView的使用主要包括初始化、加载网页内容以及设置代理。首先,我们需要创建一个UIWebView实例,然后通过`loadRequest:`方法加载URL请求或`loadHTMLString:baseURL:`方法加载HTML字符串。设置`UIWebViewDelegate...

    UIWebView原生与H5交互

    当JavaScript执行`window.location.href`或`location.replace()`改变URL时,这个代理方法会被调用。 2. JavaScript桥接:为了让JavaScript能调用原生方法,通常会定义一个特殊的URL schema,如`myapp://doSomething...

    网页视图 UIWebView

    此外,UIWebView还可以执行JavaScript代码,并获取其结果,这通过`stringByEvaluatingJavaScriptFromString:`方法实现。例如,我们可以在网页加载完成后获取页面的标题: ```swift webView....

    UIWebView的使用代码

    方法,通过调用参数request对象的URL属性来获取关于本次请求的地址以及参数信息,因此可以通过js代码模拟一次特殊的网络请求来达到调用该代理方法的作用,并通过过滤“特殊的url”来达到有目的性的js代码调用native...

    ios-完美的UIWebView.zip

    UIWebView提供了`loadRequest:`方法来加载URL请求,`stringByEvaluatingJavaScriptFromString:`方法来执行JavaScript代码并获取返回值。此外,还可以通过代理方法如`webViewDidFinishLoad:`来监听网页加载完成的状态...

    UIWebView使用

    3. 监听加载状态:可以设置UIWebView的代理(遵循`UIWebViewDelegate`协议),监听加载过程中的各种状态,如开始加载、完成加载、加载失败等。 ```swift webView.delegate = self // 遵循UIWebViewDelegate协议 ...

    UIWebView加载html

    可以通过实现UIWebView的代理方法`webView:didReceiveAuthenticationChallenge:completionHandler:`和`webViewDidFinishLoad:`来监听加载进度。`webViewDidFinishLoad:`会在HTML页面完全加载后调用,可以用来处理...

    UIWebView与 javascript的交互三

    3. **JS向OC传递数据**:要让JavaScript的数据传递到Objective-C,可以利用`UIWebView`的代理方法`- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:...

    UIWebView下OC与JS交互

    首先,在OC中设置UIWebView的代理并实现该方法: ```objc self.webView.delegate = self; - (void)webView:(WKWebView *)webView didReceiveScriptMessage:(WKScriptMessage *)message { if ([message.name ...

    ios UIWebView使用

    UIWebView提供了`stringByEvaluatingJavaScript(from:)`方法来执行JavaScript代码,并获取返回值。例如,要获取页面上的某个元素的文本,可以这样写: ```swift webView.stringByEvaluatingJavaScript(from: ...

    获取UIWebVIew里的图片的demo

    2. **等待网页加载完成**:在UIWebView的代理方法`webViewDidFinishLoad:`中,你可以确认网页已经加载完成。这是执行JavaScript获取图片的好时机。 ```objc - (void)webViewDidFinishLoad:(UIWebView *)webView { ...

    oc中UIWebView交互 JS交互

    2. UIWebViewDelegate:设置UIWebView的代理,可以监听到JavaScript的某些事件,比如`shouldStartLoadWithRequest`方法,可以捕获到JavaScript发起的URL请求。 三、JavaScript与Objective-C/Cocoa Touch交互 1. ...

    (OC)(UIWebView)新闻详情.zip

    - **UIWebView代理**:实现UIWebViewDelegate协议,处理网页加载状态,如`webViewDidFinishLoad:`和`webView:didFailLoadWithError:`方法。 - **与JavaScript交互**:通过`stringByEvaluatingJavaScriptFromString...

    ios-UIWebView简易浏览器

    UIWebView提供了多种代理方法,允许开发者处理加载状态的改变。例如,`webViewDidFinishLoad:`代理方法会在网页加载完成时被调用,可以在此时执行一些后期处理,如设置网页标题。 ```swift extension ...

Global site tag (gtag.js) - Google Analytics