2011-10-11 18 views
5

Tôi có một dự án IOS với tài nguyên tệp html được hiển thị trong chế độ xem web. Các tệp html này có các phần khác nhau tương ứng với các đoạn (ví dụ: index.html # section1, index.html # section2), mà tôi muốn tải trong chế độ xem web. Thật không may bằng cách sử dụng [NSURL fileURLWithPath:url] không hoạt động với các đoạn. # được chuyển đổi thành %23 trong url và không tìm thấy tệp. Nếu tôi sử dụng phương thức [NSURL URLWithString:url], phương thức này hoạt động nhưng phương pháp này không thể tải tài nguyên cục bộ.Tôi làm cách nào để sử dụng NSURL fileURLWithPath với một đoạn?

Có cách nào để webview tải url tài nguyên cục bộ bằng đoạn không?

+0

http://iphoneincubator.com/blog/data-management/how-to-read-a-file-from- gói ứng dụng của bạn – Marios

+0

không, điều này không giúp được gì nhiều. Nó có vẻ là không thể ... – Marius

Trả lời

3

Như các bạn đã thấy, điều này dường như là không thể đối với các URL tập tin, nhưng bạn có thể sử dụng một cách giải quyết nếu bạn không nhớ:

[webView stringByEvaluatingJavaScriptFromString:@"window.location.hash = '#section2';"]; 
+0

Nó có thể, thomax mô tả cách chính xác để làm điều đó. – Matjan

3

Nó không rõ ràng làm thế nào Apple có ý định loại này hàng hải được được kích hoạt. Có thể có một số cách để làm điều đó, nhưng điều này hiện các trick cho tôi:

NSURL *url = [NSURL fileURLWithPath:@"/full/path/to/index.html"]; 
NSString *fragment = @"#section1"; 
url = [NSURL URLWithString:fragment relativeToURL:url]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request]; 
Các vấn đề liên quan