Displaying HTML content stored in a folder within an iOS app
Through this journey of getting to know "how to build apps for the iPhone with Swift", I have encountered a fair share of problems. You can have a read of my previous posts on
to get an idea of the sort of problems I have faced. In this post, I am going to share about a rather simple issue that I encountered very early when I started building my app. The app I am building is an HTML5 app, actually no; A more accurate statement for this would be that it is a hybrid app, as the logic is almost equally distributed between native code and HTML5 code.
It simply wouldn't work i.e. the file could not be found.
- Getting started with iOS programming
- Serving HTML content in an iOS app
- Discovering Core Data migrations
- And how to deal with Core Data migrations
to get an idea of the sort of problems I have faced. In this post, I am going to share about a rather simple issue that I encountered very early when I started building my app. The app I am building is an HTML5 app, actually no; A more accurate statement for this would be that it is a hybrid app, as the logic is almost equally distributed between native code and HTML5 code.
Problem
The problem I had was that when I would add a folder to my iOS app with web content and tried to refer to it usinglet path = NSBundle.mainBundle().pathForResource("index", ofType: "html", inDirectory:"webContent")
Why was this a problem?
So I built the first version of my app using JQuery mobile and I thought it was all done except a few features that I would still have to add to it, once I solve all iOS specific problems. It was during this time, I met Ionic framework for building HTML5 apps. If nothing else, I so fell in love with its UI elements. Apps built with Ionic look very...native"ish" and add to that, it had a host of awesome features that I could benefit from.How was I adding the files to my Xcode project?
Well I would drag the directory into the Xcode project and then choose the option to create group, as seen in this screenshot.Solution
Initially I choose to search for something like, "How to refer to html files in a directory inside your Xcode project", I failed to find a solution in a few hours. A question on StackOverflow (SO), received negative votes, seriously SO can be a little demotivating sometimes to developers trying to learn new things. Anyway since I had several other issues to solve, I decided to ignore this one and solve the other problems first, hoping that as I continue developing, my knowledge of both Xcode and iOS development will get better and I will be able to find a solution to this. I could not be more correct, the solution to my problem was really really simple. I just had to know what an Application Bundle is. Once I knew what I was dealing with, my search term changed and the solution was immediately obvious. The answer is really simple, I should not have created "Groups", instead, I should have picked the other option and that was to "create folder references" instead. Like in the screenshot belowReferences
This SO post was very helpful


Comments