iOS WKWebView学习记录(三)

在WKWebView开发者中,有时候,在APP端嵌套h5页面的时候,为了区分去WAP端还是APP端,通常需要做区分标示,这样一般,是通过修改UserAgent来做区分标示,比如,我们项目中使用gomeshop来区分,

-(void)changeUserAgent{
    if (@available(iOS 9.0, *)) {
        //设置setCustomUserAgent 这个导致 没有浏览器内核信息
//        [self.wkWebView setCustomUserAgent:@"gomeshop"];
//        [self.wkWebView setValue:@"gomeshop" forKey:@"applicationNameForUserAgent"];
         UIWebView * webView = [[UIWebView alloc]initWithFrame:CGRectZero];
        NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
        userAgent = [userAgent stringByAppendingString:@" GomeShop"];
         [self.wkWebView setCustomUserAgent:userAgent];
        }else{
        UIWebView * webView = [[UIWebView alloc]initWithFrame:CGRectZero];
        NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
        userAgent = [userAgent stringByAppendingString:@" GomeShop"];
        NSDictionary * customUserAgent = [NSDictionary dictionaryWithObjectsAndKeys:userAgent,@"UserAgent", nil];
        [[NSUserDefaults standardUserDefaults]registerDefaults:customUserAgent];
        [[NSUserDefaults standardUserDefaults]synchronize];
    }
     NSLog(@"configuration.applicationNameForUserAgent***%@", self.wkWebView.configuration.applicationNameForUserAgent);
     [self.wkWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
        NSLog(@"changeUserAgent******%@",result);
    }];
}

本demo是WKWebView的基本使用和交互 ,实现了原生调用js的方法、js调用原生的方法、通过拦截进行交互的方法;修改内容 加入沙盒 / /加载沙盒 不带参数 // NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // NSString * path = [paths objectAtIndex:0]; // path = [path stringByAppendingString:[NSString stringWithFormat:@"/app/html/index.html"]]; // NSURL *url = [NSURL URLWithString:[[NSString stringWithFormat:@"file://%@",path] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]] relativeToURL:[NSURL fileURLWithPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject]]; // [self.wkView loadFileURL:url allowingReadAccessToURL:[NSURL fileURLWithPath: [paths objectAtIndex:0]]]; // 带参数 /* NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * path = [paths objectAtIndex:0]; path = [path stringByAppendingString:[NSString stringWithFormat:@"/app/html/index.html"]]; NSURL * url = [NSURL fileURLWithPath:path isDirectory:NO]; NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO]; [queryItemArray addObject:[NSURLQueryItem queryItemWithName:@"version" value:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]]; [urlComponents setQueryItems:queryItemArray]; [self.wkView loadFileURL:urlComponents.URL allowingReadAccessToURL:[NSURL fileURLWithPath: [paths objectAtIndex:0]]]; */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值