您的位置:首页 > 移动开发

WebView与JS交互传值

2016-05-10 16:01 253 查看
/**************************WebView的代理方法*******************/

//webView 加载结束调用此方法

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    

    //objc调用Js    /** getMessageFromApp('%@') 
是JS中的方法***/

    

    NSString *jsCode = [NSString
stringWithFormat:@"getMessageFromApp('%@')",@"我是app发来的消息"];

    

    //app向 js发送信息调用此方法

    [_myWebVIew
stringByEvaluatingJavaScriptFromString:jsCode];

    

   
//app发送的消息将会显示在网页上

}

//js向app提交信息时的回调方法

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{

    

   
//从回调方法里app可以截获Js提交的信息

    NSString *requestString = [[request
URL] absoluteString];
//获取请求的绝对路径

    NSString *requestStrJm = [self
URLDecodedString:requestString];//将截获的信息解码

    NSLog(@"截获的信息====%@",requestStrJm);

    

    //======信息判断==========

    NSArray *commponents = [requestStrJm
componentsSeparatedByString:@":"];
//提交请求时候分割参数的分隔符

    if ([commponents
count] > 1 && [(NSString *)[commponents
objectAtIndex:0]
isEqualToString:@"testapp"]) {

        

        if ([(NSString *)[commponents
objectAtIndex:1]
isEqualToString:@"alert"]) {

            

            NSString *message = (NSString *)[commponents
obj
4000
ectAtIndex:2];

            

            UIAlertView *alert = [[UIAlertView
alloc]initWithTitle:@"下面是js向app提交的信息"
message:message delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"确定",
nil];

            

            [alert show];

        }

        

        return NO;

        

    }

    

    return
YES;

}

#pragma mark  -------------- url
解码  -----------------

-(NSString *)URLDecodedString:(NSString *)str

{

    NSString *decodedString=(__bridge_transfer
NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge
CFStringRef)str,
CFSTR(""),
CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));

    

    return decodedString;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios webview Js