我正在编写一个包含多个主题的应用程序。用户从应用程序设置中选择一个主题,所有应用程序主题都会更改。但是我无法实现的是更改本地 htmls 的 css 文件。
我有几个本地 html 文件。
HtmlFileA.html
HtmlFileB.html
HtmlFileC.html
. . .
和CSS文件
genericCssTheme1.css
genericCssTheme2.css
. . .
关于每个主题。
我想做的是更改 html 中的 css 文件,以便我可以使我的颜色适合新选择的主题。我不想为每个主题一次又一次地创建相同的 Html 文件。只需更改 css 引用就足以实现我想要的。这就是我将 html 加载到 UIWebView 的方式。
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];
每个 html 文件都以相同的方式链接到其 css。像这样:
我实际上有一个解决方案,但我想问问它是否有另一种方法(一种有效的方法)来做到这一点。 这就是我想出的。 我将在每个 html 中编写一个通用的 href 引用。
<link rel="stylesheet" type="text/css" href="genericcssfilename"/>
在将它加载到 UIWebView 之前,我将用实际文件名替换它。
<link rel="stylesheet" type="text/css" href="genericCssTheme2.css"/>
您有其他方法可以建议我吗?
最佳答案
也许你可以使用 JS 在 webView 中选择主题?不知道如何在 JS 中实现它(你可以在这个网站上询问)但它应该足以调用
[webView stringbyevaluatingJavaScript:@"ChangeThemeTo(1)"]
并在 webView 中完成所有工作,而无需重新加载和重新创建 HTML。 您的 JS 函数必须添加到您的 html 作为引用或其他东西(网络编程不是我的技能)
关于iphone - UIWebView 根据所选主题更改 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942652/