是否可以将本地Javascript库加载到iPhone上的在线页面?

时间:2011-02-16 08:53:17

标签: javascript iphone safari uiwebview

我们将实现一个混合应用程序,它使用内置的Safari视图(UIWebView)来处理一些社交内容。我们将使用一些智能Javascript库来处理页面上的一些UI内容,我们不希望一直从服务器加载库。

是否可以将一些* .js打包到应用程序包中,然后在浏览期间访问它?希望你能理解我的问题。

如果这种“混合模式”有效,也许我们可以打包一些常见的UI * .png-s。

2 个答案:

答案 0 :(得分:0)

我相信你可以,你有几种可能性,比如:

  1. 你在UIWebView上有-stringByEvaluatingJavaScriptFromString:方法 - 我相信你可以执行你的js文件的内容......我不确定,但从未尝试过它......但它应该有效。

  2. 您可以创建NSURLProtocol的子类并注册http:// schema的子类。这样,您的类可以充当Internet和使用http://模式的任何组件之间的代理 - 您可以从本地缓存返回js和png文件。

  3. 您可以单独下载html内容,并将链接替换为本地file://链接,然后使用UIWebView显示此格式化字符串。

  4. 希望这有帮助。

答案 1 :(得分:0)

尝试

NSString *jsLibFile = [[NSBundle mainBundle] pathForResource:@"library" ofType:@"js"];
if (jsLibFile) {
    NSString *libSrcTxt = [NSString stringWithContentsOfFile:jsLibFile];
    if (libSrcTxt) {
        webView stringByEvaluatingJavaScriptFromString:libSrcTxt;
    }
}   

(打开文件,在webView中评估JS。)