0
我試圖做一個類方法,將採取一個MathJax字符串,包裝所需的HTML並將其加載到指定的UIWebView。我的代碼如下:MathJax刪除UIWebView中的所有正文內容
+ (void)loadMathJax:(NSString *)jax inWebView:(UIWebView *)webView fontSize:(int)fontSize
{
NSString *mathJaxPath = [[NSBundle mainBundle] pathForResource:@"MathJax" ofType:@"js" inDirectory:@"MathJax"];
NSString *htmlContent = [NSString stringWithFormat:@""
@"<html><head>"
@"<meta name='viewport' content='initial-scale=1.0' />"
@"<style type='text/css'>"
@"body { background-color:transparent; font-size:%d; color: black; }"
@"</style>"
@"<script type='text/javascript' src='%@?config=TeX-AMS-MML_HTMLorMML-full'>"
@"</head>"
@"<body>\\(%@\\)</body>"
@"</html>"
, fontSize, mathJaxPath, jax];
NSLog(@"%@",htmlContent);
[webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:mathJaxPath]];
}
如果使用這種方法,的NSLog顯示正確的HTML(例如用<body>\(Z_1 = 4 + 2i\)</body>
),但在模擬器web視圖是空白的。使用Safari網絡檢查器顯示<body>
標籤之間的所有內容已被刪除。
事情我已經嘗試:
- 使用MathJax CDN,而不是裝載在本地。沒有不同。
- 用
test text
代替\\(%@\\)
(即刪除MathJax標記)。<body>
標籤之間仍然沒有內容運行應用程序。 - 刪除MathJax
<script>
調用。文本現在顯示出來,但沒有呈現爲數學。 - 將
baseURL:
從mathJaxPath更改爲nil
。沒有不同。
首先,弄清楚它是否是web視圖或html的問題。使用簡單的hello世界'htmlContent',看看它是否有效。 – duci9y
@ duci9y這個問題肯定似乎與MathJax庫有關。用一個簡單的hello世界替換'htmlContent'可以正常工作。就像我嘗試過的第三點要點,如果MathJax庫沒有加載,HTML就會正確渲染。 – commscheck
'baseURL'應該是MathJAX腳本所在的目錄,'mathJaxPath'應該只是腳本文件的名稱。 – duci9y