I'm considering building a PhoneGap app that would work with my web app via web socket. It would receive the instruction to dial a phone number, run in the background while the phone call is in progress, detect when the phone call picks up and when the call hangs up, and then resume so that the call information is sent back via ajax.
Can this be done in PhoneGap? Can this be approved for iOS?
Note: this is a feasibility question, not a give-me-code question.
For using any native functionality like location, call etc; developers have to create plugins. For iOS 10 and upcoming versions, apple has introduced callkit framework which allows you to programmatic access to VoIP functionality, as well as call blocking and identification. Prior to iOS 10, I have used twilio API which does the same things as mentioned in your question.
Yes, it is possible in phonegap using the custom plugins.
Yes, the application will be approved for iOS.
Can this be done in PhoneGap?
No, you'd have to develop a plugin for each platform.
Can this be approved for iOS?
All samples I found to similar problems use deprecated APIs, so probably not.
I am not an ios developer, which is why I am not sure. More information here Detecting the call events in ios
I know that this is possible on Android, see How to detect incoming calls, in an Android device?
It is not possible on Windows phone, see Is there any way to monitor phone call info on Windows Phone 7?
Related
I am working on a small project and I want to know if I can catch an event when sertain apps are open.
For example, the user opens reddit, then my app gives him a notification.
Is that possible? I am not an expert with android OS stuff.
(If it is possible I can do it with a multiplatform framework like flutter?)
The ways to interact with other apps are limited and even more restricted when you're about to find out what other apps are doing on the phone.
On Android, you could try to write an AccessibilityService which can get the app that is currently running and post a notification then.
I don't think this is possible on multiplatform apps, esp. I don't think Apple allows this on iOS.
I currently have a VOIP app using Ionic 4, WebRTC, Socket.IO with a very lightweight node.js backend. It is working really well, and is currently using normal push notifications for calls. Which has its limitations.
My issue is that I want to mature the push notifications to fit more properly with the standard VOIP native look and feel. More specifically I need the ability to receive phone calls using the native call interface so I can get features like ringtones, ending/accepting calls, and answering with bluetooth devices. So on iOS this is pushkit, and on android not 100% sure what this is. I have looked at the following libraries and so far each has had there issues. My main concern is most of them are not compatible with the newest version of iOS 13, which has some VOIP changes in it.
https://github.com/WebsiteBeaver/CordovaCall
https://github.com/Hitman666/cordova-ios-voip-push
https://github.com/Taracque/cordova-plugin-voippush
Really my big question is this, has anyone successfully built a project using Ionic 4 and the latest version of iOS/Android that captures the look and feel of a native phone call using push notifications?
Links to examples would be really appreciated.
Thanks,
Bob
Why is it so damn hard to find a reliable solution for sending push notifications on your own? I need a solid solution for sending close-to-real-time notifications to separate Android devices using WCF.
I should not have to rely on 3rd party notification services like Google's FCM. I should be able to have a notification pushed to a user's device without their application running in the foreground and have that application open when the user selects that notification. Even when the phone reboots, the phone should still be able to process your push notifications without needing to start your app first.
Have any of you Pros accomplished this yet? If so, show us the code because there are way too many half-baked solutions out there that are either too old or never actually worked.
I'm using Cordova through Intel's XDK, but I don't care what environment you're using, just show us something that actually works.
Thanks
Do not use Cordova cross platform solutions for this. Either use native IDEs per platform or use cross platform solutions that translate a common code base into native code per platform.
I have just started researching creating mobile apps and from what I understand one big advantage of using HTML5/Javascript is that you can write one application that works with both Android and iOS.
I have also read that one of the drawbacks is that there are certain things that you can't do with HTML5/Javascript that you can with a native mobile app.
Is what I stated above correct? What will I not be able to do if I decide to go the HTML5/Javascript route?
While both native and web have their own positives and negatives, the one main advantage that native apps had over web apps was "Offline Access"
However that is now changing as HTML5 has support fo Offline Web Applications.
Some things for iOS:
Background audio/sound effects
Address book
Leverage CoreGraphics & OpenGL for advanced drawing
Camera access
Accelerometer
Limited Calendar Access
It all depends on what you are going to do. If your app needs GPS, the accelerometer, or is very graphics intensive, then a native app is the only way to go.
Otherwise, I would go with something like Sencha Touch for your app for a couple reasons. First off, if you release an update with a HTML5 app, you don't need to force everyone to download it, it will update automatically. Also, as you mentioned, you only need to write one application for all mobile platforms, which expands the potential user base. Lastly, I think the internet on phones is getting fast enough to support internet applications very well, and this is only going to improve in the days to come.
Basically, it all depends on the specific needs of the application. Personally, I would go with HTML5 whenever possible, due to the mobility it gives you with platforms.
I think we can separate this into two lists...
What can be done on a mobile device that is not possible in HTML5:
Push Notifications
Advanced Graphics (3d, OpenGL)
File Uploads (possible on Android but not iOS)
Connect to Address Book
Connect to Calendar
What can be done in HTML5 but is easier or implemented better on mobile devices:
Camera Access
Offline Use
Device Location Services
Sound
Accelerometer
Speed / Slickness of UI (hard to quantify, but apps typically still feel nicer when native)
(Please note the date this was answered on, this landscape could be quite different in 6-12 months or more.)
In theory not much, if you use titanium. http://www.appcelerator.com/products/titanium-mobile-application-development/
Unlimited Extensibility
Titanium’s plug-in architecture allows you code modules in Objective-C or Java to
extend your mobile app with custom native functionality and then call those
modules using Javascript in Titanium.
Though i have never used Titanium and dont know how well this works. I would stick with native development anyhow ... for now.
I'm completely new to Android DEV.
I want to make an app for a client that sells music, the idea is that it will be an alternate front end to the PHP site but will use some of the phone functionality such as locality etc.
Could anyone recommend the best approach to this? Would I look at developing via the Android SDK or via Flex/Flash? Is it possible to use php connections to retrieve dynamic data via android?
Any advice very gratefully received.
Thanks
Paul
Your best bet would be developing your app using Android SDK as you can use all the available native features. From a Flex perspective, you have a limited set of existing android API functionality that is supported.
As long as your PHP backend supports all your HTTP requests, you are good with both Flex as well as Android way.
Hope it helped.
I highly recommend you check out jQuery touch. It is a simple UI, but you get features like access to location (I believe through the html5 geolocation api (if they allow you to know their location)) and the list layout would work perfectly for purchasing music.
Obviously this is just my opinion. The Android API can be a little overwhelming at times but you will obviously have the most control over the phone and hardware, but jQuery touch keeps it simple. http://jqtouch.com