I have built a PhoneGap application using the PhoneGap build engine (http://build.phonegap.com).
My problem is, on some devices, the date-picker is automatically available. But on some devices, it doesn't work. I read that every android using device may use a different javascript engine and PhoneGap is using on Android an engine which doesn't support the date-picker.
My questions are
Can I force my application on PhoneGap to use Chrome engine?
if not, which plugin would you recommend and how I can implement a plugin on PhoneGap build
Any other suggestion
thanks.
I have tried using the native widget DatePicker in my PhoneGap application and I gave up, different versions of Android behaves differently. Late versions of Android running the Chrome engine works OK (as you say), but older does not.
If you want true cross-platform across all versions you should probably take a look at the 3rd party PhoneGap plugins:
https://build.phonegap.com/plugins
Related
So I created an app on android studio and now my boss wants me to get it to work on Apple devices.
Is there a short cut to get an Android App to work on Apple devices ie iPhones, iPads and so on.
I really don't wanna create a whole other version for Apple devices.
Impossible. An option is to create hybrid application using Xamarin or Flutter which will run on both iOS and Android. That means you need to migrate you current implementation to hybrid app.
There are several options to do it and each of them has pros and cons so choose wisely.
Hybrid App
A hybrid app allows you to build a cross-platform mobile application with web technology. There are plenty of options you can use like Ionic, PhoneGap or React Native. But since you have built an Android app with the native code I assume, those existent features need to be rewritten in order to run on an iOS device.
Xamarin/Flutter
They are both create a native-like experience. The advantage of them comparing with hybrid app technology is the performance would be better in general. But again, it doesn't mean that you can just create an iOS app without changing any code, you'll still need to rewrite most of part in your app.
Kotlin Native
As an android developer, you're probably familiar with Kotlin. It's officially supported by Android team and It's 100% interoperable with Java. Kotlin can also be compiled to run on multiplatform including iOS. By this way, you'll be able to reuse a lot of existing Kotlin code on both Android and iOS so you don't need to use a new language to rewrite all the functionalities you had done on Android. The cons are It's an experimental feature so It's young and could change on the future and the reusability doesn't mean that you don't need to learn iOS platform.
Please, am a web developer. I just built a web app for a school to manage their results and fees.
Now, i intend to build an app on android and ios so its 'easier' for both staff and students to get notifications and interact better.
Is JQuery mobile the asnwer?
Thanks for your reply
jQuery Mobile doesn't create an application for Android nor for iOS, it only makes websites look better on said platforms.
To create a real, native, application for Android you should use Android Studio. To do the same for iOS you need XCode and MAC OS X.
But, if you prefer to write websites, Apache Cordova does what you need. Allows you to create apps for any platform using your usual HTML, CSS and Javascript.
I'll drop the link here so you can check it out.
https://cordova.apache.org/
Another approach is creating a basic Android and iOS app that simply opens a web page (your website), but it is most of the time lacking in performance. If this last approach interests you, just look up "WebView" for Android, "UIWebView" for iOS (Obviously you'll need Android Studio and XCode)
EDIT
This is an old answer, now a ton of different technologies exist to build multiplatform applications, without even losing out on performance (for example, see react-native)
If you have already built the app using JQuery mobile and want to make it into an app I recommend looking at Cordova (PhoneGap) https://cordova.apache.org/
For notifications etc I found https://www.pushwoosh.com/ to have the best integration
I am supporting a legacy Android app that was written in Xamarin. That Xamarin app will be replaced by a Cordova app. During a transition period I will need a solution that will support both. My high level thoughts are that after the user logs in to the app, I will send them to to what is applicable for them (legacy Xamarin or new Cordova). The app would effectively contain the code-base for both apps.
Is this sort of thing possible with Cordova - i.e. can I 'wrap' an exising Xamarin application inside of a Cordova one?
Thanks.
The short answer is "no." Xamarin generates an executable binary, not a collection of HTML or JS files thus Cordova/PhoneGap cannot "wrap" it. With that said, you can probably do a couple of things:
1) Have your Cordova app open the original Xamarin.Android app via app url:
Android Custom URL to open App like in iOS
2) In your legacy Xamarin.Android app create a WebView that loads the HTML/JS that your Cordova/PhoneGap would've. Basically, in a way, you'd be recreating the functionality of Cordova with Xamarin.
http://developer.xamarin.com/recipes/android/controls/webview/call_csharp_from_javascript/
http://developer.xamarin.com/recipes/android/controls/webview/load_a_web_page/
http://developer.xamarin.com/recipes/android/controls/webview/load_local_content/
I've found this link about using phonegap on monotouch apps:
http://scott.blomqui.st/2012/08/embedding-cordova-phonegap-in-monotouch-apps/
I am developing a native SDK which is integrated into a native app ("host app"). The app is calling my SDK method and this method will open a Webview (both for iOS and Android).
I looked into Phonegap as a solution, and saw that it gives me a platform for opening a Webview and communicating with the device. While this is ok, I cannot find a way to build this as the "SDK app" that I wanted, triggered by host native app, without writing the native code for that myself (duplicating my code for iOS and Android and dealing with native code).
Does Phonegap (or other platforms) have the ability to add a native logic (and not only webview) without the need to duplicate my code?
tnx!
Yaniv
PhoneGap is for developing apps. It is not really for third parties to create a library for others to use. While you can try to twist PhoneGap (and similar solutions) to serve that role, that will add extra baggage for anyone who would want to integrate with your library.
Hence, I suggest that you just create a library, sans PhoneGap.
In my team we are developing an application which is going to be played on tablets, the project has been largely developed and tested on Google Chrome.
At this time we are inserting this webapp on Apache Cordova in order to display it as a native application on Android (and later on iOS), but the app doesn't displays well on the tablet, this because of the WebKit version, which varies on every Android version and does not work as in Chrome.
The question is... There is any way to change the webkit version which operates with Apache Cordova? (or any other web rendering engine)
There is no way at this current time to change the Webkit version used by Apache Cordova - this is because Cordova uses the native Android WebView component, which is based on an old Webkit version. The native Android WebView is quickly becoming the IE 6 of the mobile world, if it isn't already.
EDIT WHOOO! Android 4.4 announced that the default WebView will now be built on top of Chromium! This means that Cordova apps running on Android 4.4 should run much faster (new JS engine) and support more features (HTML5 things.) There is still a lot of confusion around this new WebView and what it means. The best article I have read so far is here: http://www.mobilexweb.com/blog/android-4-4-kitkat-browser-chrome-webview
A lot of people have realized that this is becoming a big problem with Cordova apps. There has been some experimental work to build a version of WebView that uses the Chromium source (and thus an updated version of Webkit (Blink?)), you can view the code here: https://github.com/pwnall/chromeview Check out the "issues" tab and follow it; I've been getting a few emails every week from people filing issues. I think some forks are ahead of others and hopefully they are getting close. (According to Cordova mailing list archives, Opera was able to get this working on 2.2 but I can't find any code or anything more than a passing reference.)
If you are able to get WebView built with Chromium, it shouldn't be that difficult to switch out which WebView class Cordova uses; I'm pretty sure this ability was already added to Cordova with this and similar commits: https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=commit;h=f6049881
I think a lot of people are holding their breath that Android 5.0 will finally have an updated WebView that uses Chromium source and will be updated in sync with Chromium... if so, that'll be awesome, but it still leaves us with 4.0 and below that doesn't seem to work at all.
I'd suggest checking out CrossWalk. It's developed by Intel and uses the Blink rendering engine (same as chrome). You package it with your cordova app and then you can use same the Web rendering engine across all devices and versions 4.0+.
https://crosswalk-project.org/
Note: It adds about 20MB to your app's size, but I'd say that's minor for the headaches it would save you in cross device/version testing that you'd have to do.
Check out here to get started with crosswalk and cordova..
https://github.com/crosswalk-project/crosswalk-website/wiki/Create-Sample-App-With-Crosswalk-Cordova-Android
With the release of Apache Cordova Android 4.0.0, it supports "pluggable WebViews".
So, using Crosswalk with Cordova is just matter of installing the cordova-plugin-crosswalk-webview.