如何使用本机代码(ios app)打开Web(.html)资源文件

时间:2015-12-14 13:51:52

标签: ios cordova ionic deep-linking

我有一个用Cordova构建的ios应用程序。 我想在深度链接之后,在带有handleURL ios方法的UIWebView中打开一个Web资源文件(.html)。

我知道我应该在我的cordova JS文件中执行此操作,但我想知道本地执行此操作的方法吗?

我们说我定义了一个my-app网址计划,并希望打开file1.html。 这样做的方法是什么?

我发现了这个:

// Load the html as a string from the file system
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

// Tell the web view to load it
[WebView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];

但没有任何反应,就像它无法找到该文件一样。 那是为什么?

2 个答案:

答案 0 :(得分:0)

将所有文件放在一个文件夹中,同时在项目中添加拖放。并根据需要选择创建文件夹引用和复制项目。并尝试加载UIWebView

答案 1 :(得分:0)

  1. 您创建了一个继承自NSURLProtocol
  2. 的新类
  3. 您需要在应用中致电[NSURLProtocol registerClass:YOURCLASS]
  4. 在您的课程中,如果方案符合您的方案(例如+ (BOOL) canInitWithRequest:(NSURLRequest *)
  5. ,请实施my-app以返回true
  6. 请参阅NSURLProtocol的文档,了解如何实现其余功能。对于简单的文件系统读取,您可以实现startLoading并调用self.client回调(例如URLProtocol:didLoadData:)。对于更复杂的事情,您可能需要覆盖更多。
  7. 请参阅本教程:http://www.raywenderlich.com/59982/nsurlprotocol-tutorial