Я пытаюсь создать метод класса, который будет принимать строку MathJax, оборачивать вокруг нее необходимый HTML-код и загружать его в указанный 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>
), но веб-представление в симуляторе пустое. Использование веб-инспектора Safari показывает, что все, что находится между тегами <body>
, удалено.
Что я пробовал:
- Используйте CDN MathJax вместо того, чтобы загружать его локально. Нет разницы.
- Замените
\\(%@\\)
наtest text
(т.е. удалите теги MathJax). По-прежнему нет содержимого между тегами<body>
при запуске приложения. - Удалите вызов MathJax
<script>
. Текст теперь отображается, но не отображается как математика. - Измените
baseURL:
из mathJaxPath наnil
. Нет разницы.
htmlContent
и посмотрите, работает ли он. - person duci9y   schedule 27.07.2014htmlContent
простым приветствием, мир работает нормально. Как и в моем третьем пункте, который я пробовал, если библиотека MathJax не загружена, HTML отображается правильно. - person commscheck   schedule 27.07.2014baseURL
должен быть каталогом, в котором находится скрипт MathJAX, аmathJaxPath
должно быть просто именем файла скрипта. - person duci9y   schedule 27.07.2014