如何从UIWebView(或WKWebView)访问资产目录中的图像资源

时间:2014-11-14 00:04:26

标签: ios uiwebview asset-catalog

我们在UIWebView中显示了一个本地html。在那里,我们想要显示资产目录中定义的图像。

我知道如果我们在主束中保持图像平坦,我们可以做类似的事情。代码片段就是这样的。

webView.loadHTMLString("<img src='target_image.png'/>", baseURL: NSBundle.mainBundle().bundleURL)

但是,我不确定我能指定什么&#34; target_image.png&#34;如果png文件打包在资产目录中。 (此外,我们希望指定pdf以利用Xcode 6中的矢量图像支持)

有人知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:19)

由于资产目录作为单个文件存储在捆绑包中,因此无法获取单个资产的URL。

最简单的解决方案是不要将资产目录用于您将在Web视图中显示的图像。

如果将图像保留在资产目录中是必不可少的,那么您唯一的选择是将所需资产“解包”到不同的文件中,然后引用这些文件。

答案 1 :(得分:0)

一种实现方法是将图像转换为char expressions[MAXEXP][MAXEXP]; int n_expressions = 0; int expressions_curr_row = 0, expressions_curr_col = 0; j=0; for (i = 0; i < strlen(polinomb); i++){ // this is a new expression if (polinomb[i] == '+' || polinomb[i] == '-' || polinomb[i] == '*' || polinomb[i] == '/' || polinomb[i] == '^' ){ expressions[expressions_curr_row][expressions_curr_col] = '\0'; expressions_curr_row++; expressions_curr_col = 0; expressions[expressions_curr_row][0] = polinomb[i]; //save operator in one row alone expressions[expressions_curr_row][1] = '\0'; expressions_curr_row++; } else expressions[expressions_curr_row][expressions_curr_col++] = polinomb[i]; } expressions[expressions_curr_row][expressions_curr_col] = '\0'; n_expressions = expressions_curr_row; // print and check if it works printf("Splitted expressions:\n"); for (i=0; i<n_expressions; i++){ printf("%s\n", expressions[i]); } 并将其输入HTML。

base64