我想在UIWebView中显示自定义字体.我已经将字体放在"应用程序提供的字体"下的plist中.使用的代码:
UIWebView *webView = [[UIWebView alloc] initWithFrame:myRect];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[webView loadHTMLString:html baseURL:baseURL];
[self addSubview:webView];
Run Code Online (Sandbox Code Playgroud)
其中html是一个NSString,具有以下内容:
<html><head>
<style type="text/css">
@font-face {
font-family: gotham_symbol;
src: local('GOTHAMboldSymbol_0.tff'), format('truetype')
}
body {
font-family: gotham_symbol;
font-size: 50pt;
}
</style>
</head><body leftmargin="0" topmargin="0">
This is <i>italic</i> and this is <b>bold</b> and this is some unicode: э
</body></html>
Run Code Online (Sandbox Code Playgroud)
我正在使用iOS 4.2,因此应该支持TTF.我很欣赏一些实际可行的HTML /代码.
是否真的UIWebViewDelegate不监视使用XMLHttpRequest发出的请求?如果是这样,有没有办法监控这类请求?
例如,UIWebViewDelegate没有捕获到它-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSMutableURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.google.com", true);
xhr.onreadystatechange=function()
{
if (xhr.readyState==4)
{
alert(xhr.responseText);
}
}
xhr.send();
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用自定义字体.它们被复制到bundle并硬编码到appName-info.plist.这种字体在整个应用程序和UIWebView中都能很好地工作.
我正在加载htmlString
[webView loadHTMLString:htmlString baseURL:nil];
我在webView中使用这个字体与css:
fontFamily: fontName
但是,当我尝试使用WkWebView自定义字体无法正常工作时.WkWebView显示随机默认字体.
我尝试使用基本URL中的主束路径加载它并在css中使用font-face - WkWebView仍然显示随机字体.
任何想法如何使自定义字体在WKWebView中工作?
对不起我的英语不好
WF: === Starting WebFilter logging for process Test
2016-09-30 08:56:45.458007 Test[616:142557] WF: _userSettingsForUser mobile: {
filterBlacklist = (
);
filterWhitelist = (
);
restrictWeb = 1;
useContentFilter = 0;
useContentFilterOverrides = 0;
whitelistEnabled = 0;
}
2016-09-30 08:56:45.458437 Test[616:142557] WF: _WebFilterIsActive returning: NORun Code Online (Sandbox Code Playgroud)
我在xcode 8,iOS-10中的调试器中收到此警告,当我使用UIWebView Delegate方法加载某些东西时.我没有在Apple网站上找到有关此Web过滤器Active/De-active模式的任何文档.虽然它在我现有的webView功能中没有引起任何问题,即使我在我的webView中运行了一些javascript函数也完成了方法.但仍然很想知道这个新功能的更多信息.
有关此功能的任何建议将不胜感激.
我有一些代码需要在UIWebView完成加载文档后运行.为此,我已将UIWebView委托设置为我的控制器,并实现了该webViewDidFinishLoading方法.
这会被多次调用,具体取决于要加载的页面类型.我不确定是不是因为ajax请求,图像请求,甚至是iframe.
有没有办法告诉主要请求已经完成,这意味着HTML已完全加载?
或者可能会延迟我的代码触发,直到所有这些事件都完成了?
我在嵌入在表格单元格中的webview中呈现一些html.出于某种原因,webview底部有一条黑线.我尝试将webview的背景颜色及其scrollview设置为白色,但这并没有改变任何东西.谁看过这个吗?
这是正在呈现的HTML:
<html>
<head>
<style type="text/css">
a {text-decoration:none;background-color:white;}
</style>
<title></title>
</head>
<body style="margin:0;padding:0;background-color:white;">
<a href="http://body/" style=
"font-family:HelveticaNeue-Light;font-size:20.000000;color:black;-webkit-tap-highlight-color:rgba(0,0,0,0);">
Portland Blazers vs Golden State Warriors | FULL Highlights | January 26 ,
2014 | NBA 2013-14 Season</a><span style=
"font-family:HelveticaNeue;font-size:12.000000;color:rgb(102,102,102);white-space:nowrap;"><a href="https://www.youtube.com/watch?v=2TfldZ4w57E&feature=youtube_gdata_player"
style=
"font-family:HelveticaNeue;font-size:12;color:rgb(102,102,102);-webkit-tap-highlight-color:rgba(0,0,0,0);"><img height="12"
src="file:link@2x.png" width="20">www.youtube.com</a></span>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是在iOS7上.
更新:我仍然不确定是什么导致黑线出现但我设法通过改变我设置布局约束的方式摆脱它.在我为视图周围的间距设置约束并让布局系统确定视图应该是的大小之前.当webview完成加载其内容时,我将其更改为显式设置webview的高度约束.这似乎解决了这个问题,但我仍然不明白黑线的来源.
我正在利用它UIWebView来渲染一些HTML.但是,虽然我的webview的宽度是320,但我的HTML仍然显示为全宽,并且可以水平滚动.
我希望实现本机邮件应用程序实现的相同功能,即它适合该宽度内的所有内容而不缩小 - 本机邮件应用程序如何呈现这样的HTML?
我认为使用视口元标记会有所帮助,但我无法让它工作.
这就是发生的事情:

如您所见,内容不适合设备宽度.我尝试了很多viewportmeta标签组合.下面是我尝试Martins建议时会发生什么的一个例子.
原始HTML可以在这里找到.
有很多问题要问:我可以UIWebView查看自签名的HTTPS网站吗?
答案总是涉及:
NSURLRequest:allowsAnyHTTPSCertificateForHostNSURLConnection代替和委托canAuthenticateAgainstProtectionSpace等对我来说,这些都不行.
(1) - 表示我无法成功提交到应用商店.
(2) - 使用NSURLConnection意味着在加载初始HTML页面后必须从服务器获取的CSS,图像和其他内容.
有谁知道如何使用UIWebView查看自签名的https网页,这不涉及上述两种方法?
或者 - 如果使用NSURLConnectioncan实际上可以用来渲染一个完整的CSS,图像和其他所有的网页 - 这将是伟大的!
干杯,
拉伸.
解释我的情况的最好例子是使用博客文章.假设我有一个UITableView,它载有我从API获得的博客帖子的标题.当我点击一行时,我想显示详细的博文.
这样做时,API会传回几个字段,包括"post body"(HTML文本).我的问题是,我应该使用什么来显示它,以便它显示为格式化的HTML?我应该使用UIWebView吗?我不确定你是否在浏览网页时使用UIWebView(比如用URL或其他东西初始化它),或者你可以将它交给HTML字符串,它会正确地格式化它.
此页面上还会显示其他几个字段,例如标题,类别,作者等.我只是使用UILabel,所以没有问题.但我不知道如何处理HTML块.我正在以编程方式完成所有这些工作.顺便说一句.
如果你不能说,我对iOS开发相对较新,只有2-3周左右,没有obj-c背景.因此,如果UIWebView是正确的方法,我也会感激任何"陷阱!" 注意,如果有的话.
之前已经提出过类似的问题,但我找不到解决方案.
这是我的情况 - 我的UIWebView加载了一个远程html页面.网页中使用的图像在构建时是已知的.为了使页面加载更快,我想将图像文件打包到iOS应用程序中并在运行时替换它们.
[请注意,html是远程的.我总是得到从本地加载html和图像文件的答案 - 我已经这样做了]
我得到的最接近的建议是在html页面和iOS应用程序中使用自定义URL方案,如myapp://images/img.png,使用NSURLProtocol子类截取myapp:// URL并用本地替换图像图片.在理论上听起来不错,但我没有遇到一个完整的代码示例来证明这一点.
我有Java背景.我可以使用自定义内容提供商轻松地为Android做到这一点.我相信iOS/Objective-C必须存在类似的解决方案.我没有足够的Objective-C经验可以在很短的时间内自行解决.
任何帮助将不胜感激.