我可以在Documents目录中创建一个html文件来访问app bundle中的jquery和cordova吗?

时间:2012-12-11 16:34:30

标签: javascript jquery ios cordova nsfilemanager

我正在构建一个存储在

中的html文件
[[PROJ UserDirectory] stringByAppendingPathComponent:@"tmp_Form_File.html"]

并且文件“tmp_FOrm_File.html”内部正在动态构建。正文显示正确,但JS不会执行。

我试图这样做:

NSString * cordova_path = [[NSBundle mainBundle] oathForResource:@"cordova-2.2.0" ofType:@"js" inDirectory:@"html"]
NSString = [[@"<script type=\"text/javascript\" src=\"" stringByAppendingString:cordova_path] stringByAppendingString:@"\"></script>"];

和jquery类似。

我的问题是,我不认为当我将htmlfile加载到webView中时,它会相应地获取数据。

我测试了琴弦,它们看起来很合理:

<script type="text/javascript" src="/var/mobile/Applications/[DATA]/PROJ.app/html/cordova-2.2.0.js"></script><script type="text/javascript" src="/var/mobile/Applications/[DATA]/PROJ.app/html/jquery-1.7.2.min.js"></script><script type="text/javascript">$(function(){ alert("test"); });</script>

1)我做错了吗?如果是这样,我该如何解决这个问题?

2)通过ios将捆绑包中的html目录复制到Documents会不会更好?如果是这样,怎么样?

编辑:暂时删除了jquery引用,jquery和cordova。只是使用纯JavaScript,它会正确提醒。这意味着src在Bundle中存在问题。

2 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为您的引用无效。如果希望HTML在Webview中呈现其中包含一些相对路径,则可以使用“为添加的文件夹创建文件夹引用”选项添加它。

如果这个html页面不会获取并存储任何数据,那么请将其保存在bundle中,否则将它们复制到Appdelegate中的Library或document文件夹中。

希望这有帮助!

Like this

答案 1 :(得分:0)

我无法引用它,但我这样解决了: - 我将[BUNDLE] / html的内容复制到Documents ....

    NSString * sourcePath = [[[NSBundle mainBundle] pathForResource:@"cordova-2.2.0" ofType:@"js" inDirectory:@"html"] stringByDeletingLastPathComponent];
    NSString * documentDirectory = [AssetInspectorFileManager UsersDirectory];
  • 调整了javascript的src。

    &LT;脚本类型= \“text / javascript \”src = \“cordova-2.2.0.js \”&gt;

    &LT;脚本类型= \“text / javascript \”src = \“jquery-1.7.2.min.js \”&gt;

  • 关闭了缺失的括号

    “$(\”div.container \“)。css(\”z-index \“,1;”

成了

 "   $(\"div.container\").css(\"z-index\",1);"
  • 为此做好准备是不好的,就像你写出数据一样:

    $(this).click(function(){// [这是一个评论]警告(“hi”);});

所以你必须针对这类问题进行调整。