使用UIWebView和Javascript在iOS中的〜/ Documents /文件夹的相对路径

时间:2014-01-02 11:06:13

标签: javascript ios uiwebview relative-path

需要使用data.json文件中的javascript检测应用文档文件夹(index.html)中文件的存在。 JS代码可以测试index.html文件所在的文件夹中是否存在文件。如果我将url硬编码到Documents文件夹,html + JS文件就可以工作,但是为了部署到我希望以编程方式查找文件的设备。

我可以在JS(嵌入在index.html文件中)中执行此操作吗?如果不允许,我是否需要在ObjectiveC中编写javascript,然后加载html +包含使用"src=file:/%@/data.json",stringRelativePathToDocumentsVar的JS代码的字符串,如@fallenreaper在this SO question中提到的那样。

以下是我的index.html文件中的JavaScript代码:

<script type='text/javascript'>
    function get_error(x){
        document.getElementsByTagName('span')[0].innerHTML+=x+" does not exist.";
        }
    url="~/Documents/data.json";
    url+="?"+new Date().getTime()+Math.floor(Math.random()*1000000);
    var el=document.createElement('script');
    el.id="data.json";
    el.onerror=function(){if(el.onerror)get_error(this.id)}
    el.src=url;
    document.body.appendChild(el);
</script>

需要在ObjC中形成的代码如下所示:

NSString *urlRelPath = [[@"<script type=\"text/javascript\" url=\"file:/%@" stringByAppendingString:documents_path] stringByAppendingString:@"\"></script>"];

使用(from this SO Q:)获得documents_path的地方:

NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents_path = [paths objectAtIndex:0];

让我知道这是否在正确的轨道上,或者我是否应该考虑更优雅的东西。任何提示/提示将不胜感激。

**更新** 文件data.json可以是任何文件(txt,xml等),其中我存储通过URL方案传递给此应用程序的字典。从技术上讲,此应用程序在本地运行,无需网络访问。此应用程序(appA)查询设备上安装的另一个应用程序(appB),该应用程序将数据发送到appA。然后AppA在本地保存信息,我需要显示该文件可用(或更新)的通知。

1 个答案:

答案 0 :(得分:0)

在我的Cordova应用程序中,我下载了应用程序的文件并将其保存在Documents文件夹中。然后,我使用

链接到这些图像,视频和音频
"../../Documents/myfile/myfile.jpg"