美文网首页
IOS关于加载嵌套3D模型的webview

IOS关于加载嵌套3D模型的webview

作者: 浅_若清风 | 来源:发表于2018-04-04 16:56 被阅读0次

    前言:最近在做IOS加载嵌套有3D模型的网页时,遇到的坑还真多,因为以前也没接触过这块,和同事一起花了一周多的时间才得以解决,在此记录一下。
    一、创建webview,添加代理UIWebViewDelegate

    self.myWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT-64)];
    self.myWebView.delegate = self;
    self.myWebView.scalesPageToFit = YES;
    self.myWebView.multipleTouchEnabled = YES;
    self.myWebView.userInteractionEnabled = YES;
    self.myWebView.scrollView.scrollEnabled = YES;
    [self.view addSubview:self.myWebView];
    

    二、加载url。由于我们的url是由固定的URL和后台返回的文件路径拼接而成的,所以,拼接的时候应注意前后地址的格式问题,利用nsstring的stringByReplacingOccurrencesOfString熟悉转换特殊字符

    **注意,必须是转换成“\\”而不是“\”*
    NSString *path = [filePath stringByReplacingOccurrencesOfString:@"文件路径特殊字符" withString:@"\\"];
    NSString* encodedString = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    [self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:encodedString]]];
    

    三、实现代理方法

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
        return YES;
    }
    - (void)webViewDidStartLoad:(UIWebView *)webView{
    }
    - (void)webViewDidFinishLoad:(UIWebView *)webView{
    }
    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    }
    

    遇到的问题:
    1、url拼接前后格式不一致,获取的文件路径特殊字符未转换成“\ \”,导致加载的时候不能读取到后半部分的路径,界面只展示出网页的背景而不能展示3D模型
    2、使用WKWebView来加载时,在mac Safari和模拟器能正常展示并操作,而在手机端时不能正常展示及操作。关于这个问题,纠结了很久还是没有弄明白,望知道的大神们告知一下,谢谢!

    相关文章

      网友评论

          本文标题:IOS关于加载嵌套3D模型的webview

          本文链接:https://www.haomeiwen.com/subject/uemkhftx.html