我正在编写一个包含多个主题的应用程序。用户从应用程序设置和所有应用程序主题更改中选择主题。但我无法实现的是更改本地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"/>
你能建议我吗?
答案 0 :(得分:0)
也许您可以使用JS在webView中选择主题?不知道如何在JS中实现它(你可以在这个网站上询问)但它应该足够好,只需要调用
[webView stringbyevaluatingJavaScript:@"ChangeThemeTo(1)"]
并在webView中完成所有工作,无需重新加载和重新创建HTML。 你的JS函数必须作为参考或其他东西添加到你的html中(网页编程不是我的技能)