2015-04-10 3 views
0

Я сейчас работаю на небольшое приложение, которое просто загружает одну страницу в WebView, и я хочу, чтобы иметь возможность сделать эту веб-страницу выглядеть по-разному во время просмотра с помощью этого приложения ..стили Изменить страницу Android WebView

Эта страница использует один .css, и я хочу использовать свою собственную версию этого .css вместо оригинальной или просто заменить часть оригинала моей (используя оригинал, а затем перезаписать его с моей версией).

Это возможно изменить исходный код страницы (необязательно до его загрузки), поэтому я могу изменить некоторые стили, чтобы сделать веб-страницу другой?

Просто объяснить: Я хочу изменить <link rel="stylesheet" type="text/css" href="original.css"> к <link rel="stylesheet" type="text/css" href="original.css"> <link rel="stylesheet" type="text/css" href="http://www.something.com/edited.css">

Я использую Xamarin Studio, проект WebView C# Android, кстати .. Кроме того, это очень вероятно, будет называться дубликатом это: не Override web page style in Android WebView, но он не отвечал, так что это не очень полезно для меня ..

ответ

0

вы смотрели на Есть:

addJavascriptInterface (Object object, String name) в WebView?

Вы можете ввести код для управления DOM. Возможно, это плохая идея, так как это ВОПРОС О БЕЗОПАСНОСТИ несколькими способами.

менее навязчивым и более безопасным, объект WebSettings позволяет изменить некоторые презентационные аспекты: http://developer.android.com/reference/android/webkit/WebSettings.html

В этой области еще один инструмент для изучения является создание и установить WebViewClient подкласс: http://developer.android.com/reference/android/webkit/WebViewClient.html

Лишь немногие возможности для изучения.

+0

Не могли бы вы быть пожалуйста, немного более конкретно? Я довольно новичок в этом, поэтому я не знаю, что именно я должен делать, и в документации на Android не приходит много примеров. Извините за то, что тратил свое время на такие глупые вещи, но я просто не мог Найти какое-либо решение в любом месте. Я бы хотел просто загрузить страницу с помощью одной дополнительной линии как можно проще. – user3043260

0

Вы можете ввести свой css с помощью Javascript. Вы можете вводить следующий JavaScript после WebView завершения загрузки:

var link = document.createElement("link"); 
link.href = "http://example.com/mystyle.css"; 
link.type = "text/css"; 
link.rel = "stylesheet"; 
document.getElementsByTagName("head")[0].appendChild(link); 

Так что ваш окончательный код Java будет выглядеть примерно так:

String jsToInject = "var link=document.createElement('link');link.href='http://example.com/mystyle.css';link.type ='text/css'; link.rel ='stylesheet';document.getElementsByTagName('head')[0].appendChild(link);"; 
myWebView.loadUrl("javascript:" + jsToInject); 
+0

Большое вам спасибо! Наконец, кто-то, кто дал мне какой-то ответ, я бы понял. Вам не хватает ';' на первой строке второго кода, кстати. Работает как прелесть за то, в чем я нуждался! :) – user3043260

+0

Добро пожаловать. Исправлена ​​эта опечатка. Если это помогло, отметьте его как «Принято». – rax