webview.loadDataWithBaseURL() еквивалент при стартиране на системния браузър?

Показвам уеб страница в приложението си, използвайки уеб изглед, но бих искал просто да стартирам браузъра от приложението си. Проблемът е, че използвам този метод от класа WebView:

wv.loadDataWithBaseURL("http://somewebsite.com",responseQuery, "text/html", "utf-8", "");

следван от:

setContentView(wv);

как да стартирам браузъра от моето приложение, като използвам съществуващия си код? Не мога просто да използвам стандартно намерение, защото трябва да прикача всички тези други аргументи, тъй като те са необходими (извършвах някои POST заявки преди това хаха).

Всякакви връзки към подходящи ресурси или примерен код ще бъдат високо оценени! Благодаря за отделеното време.


person user2734823    schedule 23.03.2014    source източник


Отговори (1)


AFAIK това, което се опитвате да постигнете, не е възможно. Всеки приличен браузър трябва да забрани това от съображения за сигурност - това би означавало, че всяко приложение може да подмами потребителя да мисли, че произволен HTML е зареден под определен домейн. Това би позволило на атакуващ да зареди злонамерен HTML под домейна на доверен уеб сайт (като банката на потребителя).

Ако просто искате да покажете някакво съдържание, можете да обмислите зареждането на сайта като URL адрес с данни (data:text/html,) и да зададете основния URL адрес в заглавките на съдържанието (така че CSS и т.н. да се разрешават правилно). Това обаче би означавало, че браузърът ще покаже целия URL адрес на данните в адресната лента.

Изглежда, че се опитвате да изобразите отговор от някакъв сървър в WebView - възможно ли е да конструирате URL адреса на оригиналната заявка и вместо това да го изпратите на браузъра?

person marcin.kosiba    schedule 24.03.2014