IOS关于加载嵌套3D模型的webview
程序员文章站
2022-03-26 17:21:50
...
前言:最近在做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和模拟器能正常展示并操作,而在手机端时不能正常展示及操作。关于这个问题,纠结了很久还是没有弄明白,望知道的大神们告知一下,谢谢!
上一篇: el-select获取选中项label值
下一篇: 设计数字时钟