Pra*_*Raj 1 html javascript iphone uiwebview ios
我正在尝试在UIWebView中加载html字符串时遇到问题.这就是我正在做的事情
NSString *temp = [[NSString alloc] initWithFormat:@"<head><script type='text/javascript' src='code39.js'></script><style type='text/css'>#barcode {font-weight: normal; font-style: normal; line-height:normal; sans-serif; font-size: 12pt}</style></head><body><script type='text/javascript'>function get_object(id) {var object = null;if (document.layers) {object = document.layers[id];} else if (document.all) {object = document.all[id];}return object;}get_object('barcode').innerHTML=DrawCode39Barcode('%@',2);</script></body>",[count objectAtIndex:i]];
[mainWebView loadHTMLString:temp baseURL:nil];
Run Code Online (Sandbox Code Playgroud)
所以这是问题所在:
<script type='text/javascript' src='code39.js'>
Run Code Online (Sandbox Code Playgroud)
如何在我的应用程序中添加code39.js文件,以便我的html可以访问它并在UIWebview中加载它.
请帮忙...
jmk*_*jmk 11
假设您的应用程序附带了JavaScript代码,并且不通过网络获取它,一个简单的解决方案是使您的JavaScript代码内联而不是外部资源.也就是说,您可以将标记code39.js之间的内容放在<script>其他JavaScript代码中.
当然,如果您想添加大量代码,这种方法效果不佳,并且会进一步使HTML变得复杂.你的NSString声明会很快变得笨拙(甚至更多)!
您可以将JavaScript文件添加为要包含在应用程序包中的资源文件.要做到这一点,只需添加code39.js到您的Xcode项目.
请注意,默认情况下,Xcode会将.js文件添加到"编译源"构建阶段.你不想要这个; 您希望将文件视为资源.谢天谢地,它很容易修复:
.js文件拖出"编译源"部分并进入"复制包资源"部分.这将确保Xcode在您构建应用程序时将脚本文件复制到"Resources"目录.
将脚本作为资源包含后,您需要找到指向文件系统上其位置的URL.幸运的是,Cocoa使这很容易做到:
NSURL* url = [[NSBundle mainBundle] URLForResource:@"code39" withExtension:@"js"];
Run Code Online (Sandbox Code Playgroud)
在url你回来是绝对URL到code39.js您的应用程序包内的文件.从那里,将此URL插入另一个字符串应该是非常简单的,如下所示:
NSString* html = [NSString stringWithFormat:@"<script src='%@'>", url];
Run Code Online (Sandbox Code Playgroud)
加载HTML后,UIWebView将拥有脚本的完整URL,并且应该执行.这个方法适用于我刚为iOS 6.0创建的测试项目.
(旁注:我强烈建议您将HTML内容与源代码分开.您可以轻松地调整上述方法,将纯文本文件的内容读入NSString.)
| 归档时间: |
|
| 查看次数: |
7411 次 |
| 最近记录: |