UIWebview Html5 со встроенным SVG - PullRequest
       11

UIWebview Html5 со встроенным SVG

2 голосов
/ 08 августа 2011

Я пытаюсь нарисовать базовый круг с SVG внутри файла Html 5, а затем загрузить его внутри UIWebview.Однако, когда я компилирую и запускаю, на экране ничего не появляется (тестирование на iPad).

Не использую ли я правильный код или SVG с HTML 5 не поддерживается в UIWebview?

Вот коддля UIWebview:

- (void)viewDidLoad 
{
    [super viewDidLoad];

    NSString*  path    = [[NSBundle mainBundle] pathForResource:@"SVG" ofType:@"html"];
    NSString*  content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

    webView = [UIWebView new];
    webView.frame = CGRectMake(0, 0, 1024, 768);
    webView.dataDetectorTypes = UIDataDetectorTypeAll;
    webView.userInteractionEnabled = YES;
    [webView loadHTMLString:content baseURL:[[NSBundle mainBundle] bundleURL]];

    [self.view addSubview:webView];
    [webView release];
}

Вот код внутри файла SVG.html, который вызывается в папке ресурсов:

<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <circle id="redcircle" cx="50" cy="50" r="50" fill="red" />
</svg>
</body>
</html>

Я читал много похожих сообщений, но яне смогли найти ответ.

Любая помощь приветствуется.Спасибо.

1 Ответ

3 голосов
/ 08 августа 2011

Это потому, что Safari (или что-то внутри UIWebView) имеет проблемы со встроенными элементами SVG. Я слышал, что Apple все равно это исправит ...
Попробуйте это:

svg.html:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>SVG</title>
  </head>

  <body>
    <object data="circle.svg" width="250" height="250"
    type="image/svg+xml" /> 
  </body>
</html>

circle.svg:

<svg xmlns="http://www.w3.org/2000/svg">
<circle r="50"/>
</svg>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...