iPhone Mobile Safari File System Access - iphone

Is it possible to write to a file in a native iPhone application and have a Safari browser read from that file after having the browser opened from the native app?
Alternatively (and this would be great!), would it be possible to launch a mobile Safari webapp from a native iPhone app, and have that application access the OS 3.0 External Accessory Framework? My assumption is no...
Basically, I have a functioning iPhone app that wraps a simple mobile Safari webapp, but I'd like to utilize the external accessory framework once I have launched the Safari webapp from the iPhone app...

You can use the phonegap framework : it provide a project template and libraries to access native function in javascript (like writing/reading a file).
Consider also the localstorage and the SQLLite DB...

There are 2 different interpretations. If you want to launch MobileSafari from your app, then the answers will be no since MobileSafari and your app are isolated by sandboxes. But you may include the detail in the URL like
http://example.com?info=SXMgaXQgcG9zc2libGUgdG8gd3JpdGUgdG8gYSBma…
But you can embed a UIWebView in your app, then the answers will be yes (to the UIWebView), since you may communicate with the web view with any ObjC code.

Related

What is a Hybrid App for mobile?

What is a hybrid app for mobiles? What is basic architecture to follow while developing? What are the components? What will be the back end and what will be the UI? Is it for only iPhone or can be for any mobile device?
With iOS, you can create an application that combines features of native applications and webpages.
A hybrid application is a native iPhone application that provides most of its structure and functionality through a web viewing area, but also tends to contain standard iOS user interface elements.
A hybrid application gives users access to web content with an element called a web view (described in “Web Views”).
Precisely how you use a web view in your application is up to you, but it’s important to avoid giving users the impression that your application is merely a mini web browser.
A hybrid application should behave and appear like a native iPhone application; it should not draw attention to the fact that it depends upon web sources.
You can create Phonegap app and still using native controls of cocoa for powerful features like Mapkit api, UIWebview (Childbrowser plugin) etc
A hybrid app is a mobile application in which the same app can be worked in different mobile operating systems like iOS, Android, Windows, etc…, and even in browsers (Mozilla, Chrome, IE, etc.. ). It is the same as mobile applications for users, which can be installed from App Store or Google Play store. But technically it’s different, its works with a combination of HTML, CSS and JavaScript.
More read-: http://webduratech.com/what-is-hybrid-app-how-it-can-help-small-scale-business/+
A hybrid application blends web views (loading a webpage into the app) and native code together to create a single seamless application. In most cases it is faster than developing the entire app in native code, because developing for the web is easier (there are tons of web frameworks and it is just easier to develop good looking content on the web vs via native code, such as swift).
Ex: Amazon uses web views for the products page on the iOS app, being able to reuse the code on iOS, Android and the web saves them a ton of time.
In a hybrid app, the core of the app (navigation, location) are normally done in native code and stuff such as showing images and information is generally done via web views.
Since web views are a web page, you can develop them in any HTML 5 framework you would like to use.
The most important part is to have an app that works and runs super well for your users, and having web views in the app is very tricky, but a huge time saver.

By using PhoneGap can we convert iphone app to android app?

Can we build an iphone app and convert the application to the android application using phonegap framework?
I have been through various links.
We basically need to develop a webapp for that and that can be converted to an android app or an iphone app respectively.
I am an iphone application developer and i am not at all familiar to android.
Links or example code would be greatly appreciated.
PhoneGap will not enable you to "port" an existing iphone application to Android. However, if you develop an application within the PhoneGap framework (which means using html, css and javascript), you will be able to deploy it on multiple mobile platforms such as iPhone, Android, Nokia, Blackberry, etc.
The downside is that you will eventually be developing a packaged mobile website - your application consist of html pages, css styling and javascript behaviour/logic, combined whith access to phone internals such as gps, disk, database, camera, etc. It will usually not "feel" fully native on most platforms. For example, you will not be using the system's "native" ListView.
There are javascript libraries such as JQuery-mobile, JQTouch, etc, that make your application look nicer on mobile devices, but it's still not as good as the native experience.
The app you build will not be a native Android or IPhone app but a HTML Web App wrapped in the PhoneGap wrapper and packaged into a native app. So yes you can build for both platforms as long as you build a Web App
Edit -(a Web App is just a plain html/css/javascript + server-side(php, asp etc) website)

Is there a way to automate conversion of web app to iphone or android native app?

I came across this link:
http://ofps.oreilly.com/titles/9780596805784/
which seems to suggest web app can be converted to native iphone without writing a single line
of objective-c code. But the book mentioned there is outdated now and things may have changed a lot.
Are there open source software that will allow me to automatically convert my web application to native iphone ( or android) application? By the way my web application is html5 canvas based animation application with lot of html and css as well.
PhoneGap doesn't generate native code for you: it creates an application consisting of a WebView and throws your HTML code on it. From personal exerience I can add that the performance is quite slow, on both iPhone and Android, compared to a native app.
jqTouch creates a nice way to access your web application, but the application remains a web application residing on your site, plus you have to use some jquery for styling.
Apparently the only one that actually does generate native code is Appcelerator Titanium. On RhoMobile I never managed to get to the point to actually write some Ruby code because you have to know all the Ruby in he word just to install it on your Mac.
So the verdict was to sit down and develop the app in objective-c.
Have you looked at PhoneGap?
Simple steps to put your html app into iOS native container, without coding:
Download xCode
Download simple web view app from https://github.com/nomtek/iOSWebViewApp
Open simple web view app within xCode
Add your HTMLs to the project file structure
Run your app and voila :)
This approach is good if you don't need access to any phone specific features, just a standard Web View. Loading time will be short as this approach doesn't load any extra libraries.

What are the limitations of coding web apps for the iPhone?

For instance, could a web app access the mic on an iPhone and transmit voice back to a server?
Or is it possible to build Safari extensions for the iPhone that can operate transparently on a web page? For instance, is it possible to build an extension that removed ads from Google result pages for the iPhone, without the user clicking any buttons to activate the ad-removal functionality?
You pretty much hit the main limitations.
You have no access to hardware that's not supported by HTML5 (geolocation is, but things such as acceleration and audio/video recording are not).
You can't build Safari extensions for the iPhone at this time, you can only use JavaScript like usual.
Some frameworks like PhoneGap make attempts to provide more hardware features via a native app container, but it appears Apple is trying to prevent those apps from going on the App Store, to some extent.

ASP.Net MVC jQtouch iPhone device profile/authentication

I'm building an asp.net web application for an iphone using jQtouch. How can I read the device serial number from asp.net mvc?
In short, I don't think you can get the device ID through iPhone Safari.
iPhone Safari, like any other browsers, works in a black-box model and only let through a selective set of information about the system, such as geo-location and device orientation. The Safari Web Content Guide by Apple documents several features specific to Mobile Safari.
A lot of the API's like JQTouch are interacting more and more with the device itself with things like geo-location etc. When I need to get more into the device and hardware I use tools like PhoneGap that allow you to work directly with the device like a native app (almost) still using javascript to do this. PhoneGap opens up the device functions to embed in your web page to leverage in your application. The catch is it is still a web site, but is now an application and must be added to the device through the likes of the app store or market etc.
You can read more at www.phonegap.com . I have had good luck with it so far combining JQTouch and PhoneGap.