【问题标题】:Change page styles Android WebView更改页面样式 Android WebView
【发布时间】:2015-04-10 20:36:53
【问题描述】:

我目前正在开发一个小型应用程序,它只是将一个网页加载到 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,C# Android WebView 项目。 此外,这很可能会被称为重复:Override web page style in Android WebView,但它从未得到答复,因此对我来说不是很有帮助..

【问题讨论】:

    标签: c# android css webview android-webview


    【解决方案1】:

    你看过了吗:

    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

    只是一些探索途径。

    【讨论】:

    • 您能不能说的更具体一点?我对此很陌生,所以我真的不知道我到底应该做什么,而且 Android 文档没有提供很多示例。很抱歉浪费你的时间在这些愚蠢的事情上,但我就是做不到在任何地方找到任何解决方案.. 我很想用尽可能简单的方式加载页面..
    【解决方案2】:

    您可以使用 Javascript 注入您的 css。您可以在WebView 加载完成后注入以下javascript:

    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);
    

    【讨论】:

    • 非常感谢!终于有人给了我一些答案,我会理解。顺便说一句,您在第二个代码的第一行缺少;。对于我需要的东西,它就像魅力一样! :)
    • 不客气。修正了那个错字。如果有帮助,请将其标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 2017-12-12
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多