WebBrowser.NavigateToString() с iframe видеоклипове (Youtube) на WP8

Работя върху приложение WP8, което изтегля произволен HTML и го изобразява с помощта на контрола на WebBrowser и NavigateToString(). Понякога HTML съдържа вградени видеоклипове, като видеоклипове в YouTube, напр.

<iframe height="380" src="http://www.youtube.com/embed/50m3v1deoid" width="689"></iframe>

И видеото не се зарежда, вместо това показва съобщение за грешка: За възпроизвеждане на видео е необходим Adobe Flash Player или браузър, поддържащ HTML5.

Ако външна уеб страница, съдържаща същия HTML, бъде навигирана до използване на Navigate(), видеото се зарежда според очакванията. IsScriptEnabled е зададено на True, но предполагам, че това е странност с iframes, заредени от низове.

Това предназначено ли е? Има ли начин да се заобиколи това?

Освен очевидното решение, което ми липсва, една идея, която имах, беше да създам малък и основен уеб сървър, използващ сокети, да го прикача към localhost и да използвам Navigate(), за да получа страницата. Щеше ли да работи?


person zi3guw    schedule 06.05.2013    source източник


Отговори (1)


Обикновено прекарвам няколко часа с това и след това го разбирам 10 минути след задаването на въпроса.

Проблемът беше, че не задавах DOCTYPE в HTML, помислете за това:

browser.NavigateToString("<html><head><title></title></head><body>" +
                "<iframe height=\"383\" src=\"http://www.youtube.com/embed/9bZkp7q19f0\" width=\"680\"></iframe>"+
                "</body></html>");

това не работи Видеото показва грешка. Това обаче:

    browser.NavigateToString("<!doctype html>" +
        "<html><head><title></title></head><body>" +
        "<iframe height=\"383\" src=\"http://www.youtube.com/embed/9bZkp7q19f0\" width=\"680\"></iframe>"+
        "</body></html>");

Работи добре и единствената разлика е декларацията на doctype.

Моралът на историята е винаги да използвате добре оформен HTML.

Предполагам, че причината за това е, че без HTML5 doctype браузърът не изобразява, тъй като HTML5 и WP не поддържа flash, така че не се показва видео. След като има HTML5 doctype, браузърът може да зареди HTML5 плейъра.

person zi3guw    schedule 07.05.2013