UIWebView根据所选主题更改css文件

时间:2012-03-30 12:10:32

标签: iphone html css ios uiwebview

我正在编写一个包含多个主题的应用程序。用户从应用程序设置和所有应用程序主题更改中选择主题。但我无法实现的是更改本地htmls的css文件。

我有几个本地html文件。

HtmlFileA.html
HtmlFileB.html
HtmlFileC.html
   。 。

和css文件

genericCssTheme1.css
genericCssTheme2.css
。 。

关于每个主题。

我要做的是更改html中的css文件,以便我可以将我的颜色适合新选择的主题。我不想为每个主题反复创建相同的Html文件。只是改变css引用就足以实现我想要的。这就是我将htmls加载到UIWebView的方法。

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];

每个html文件以相同的方式链接到其css。像这样:
    < link rel =“stylesheet”type =“text / css”href =“genericCssTheme1.css”/>

    < link rel =“stylesheet”type =“text / css”href =“genericCssTheme2.css”/>

我实际上有一个解决方案,但我想问一下,如果有另一种方法(一种有效的方法)来做到这一点。 这就是我提出的。 我将在每个html中编写一个通用的href引用。

<link rel="stylesheet" type="text/css" href="genericcssfilename"/>

在将其加载到UIWebView之前,我将用实际文件名替换它。

<link rel="stylesheet" type="text/css" href="genericCssTheme2.css"/>

你能建议我吗?

1 个答案:

答案 0 :(得分:0)

也许您可以使用JS在webView中选择主题?不知道如何在JS中实现它(你可以在这个网站上询问)但它应该足够好,只需要调用

[webView stringbyevaluatingJavaScript:@"ChangeThemeTo(1)"]

并在webView中完成所有工作,无需重新加载和重新创建HTML。 你的JS函数必须作为参考或其他东西添加到你的html中(网页编程不是我的技能)