PhoneGap 3/ Cordova 3 does not open up e-mail links (mailto) with the native mail application (ios) - iphone

I updated a phonegap 2.5 app to ios7 and cordova 3.1. It runs only on iOS.
When the external links wouldn't open, I included the InAppBrowser plugin and that worked.
But how to I get the mail links (E-Mail me) to open in the native mail program? There is no such plugin.
I tried the contacts plugin. But it wasn't that.
I saw the EMail Composer plugin, but I am looking for support by cordova or a cordova plugin.

I used this simple html style of doing it. Works fine on ios7 and cordova 3.5 and android 4.4
<a href="mailto:abc#gmail.com" data-rel='external'>
I'm not even using any plugins such as inappbrowser, just in case you have that doubt.

Just solved it.
Seems to be a missing feature of the iOS simulator. On my iPhone 4 it works.

Related

Any cordova plugin to add WebAuthn API to Android WebView?

We've developed a cordova app that shows one of our websites (which is also accessible using a web browser).
Recently, FIDO2 authentication using WebAuthn has been added to that website. This works fine in the tested browsers (Chrome and Firefox), but not in our cordova application, as it uses Android WebView, which doesn't implement the WebAuthn API.
Does anybody know if there is any cordova plugin to add this API to Android WebView?
Is there any website with information about the Android WebView roadmap (bugs that will be fixed in next release, new features that will be added, ...)?
You're correct that Android WebView doesn't support WebAuthn in Android 13. We hope to address that in the Android 14 timeframe but, for now, you have to inject Javascript hooks and use a Javascript bridge to implement it. It's certainly possible to do but I'm not aware of any packaged solutions that do it.

Themeable browser use UIWebView forcefully with ionic capacitor

I am doing ionic application with capacitor.
I have to use https://ionicframework.com/docs/native/themeable-browser plugin for one funcationality but when I make build and upload to apple store app is rejected because of UiWebView issue.
Commands for installing themeable plugin
npm install cordova-plugin-themeablebrowser
npm install #ionic-native/themeable-browser
ionic cap sync
If I remove that plugin and upload it to apple build process pass successfully.
Apple no longer accepts new submissions using UIWebView:
https://forums.developer.apple.com/thread/122114
There is also an Ionic blog article: https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation/
You can use Capacitor's Browser API, but it is quite limited compared to some existing Cordova plugins. However it is built around WKWebView and is therefore compliant.
There is AFAIK no alternative but to move to WKWebView if you want your app to be on the Apple App Store.
I assume you are using Themeable Browser instead of InAppBrowser because you need to customize the toolbar and other components. Unfortunately Themeable Browser is no longer a supported project. In InAppBrowser version 5.0.0 https://cordova.apache.org/announcements/2021/02/16/inappbrowser-release-5.0.0.html only uses WKWebView and you can now set InAppBrowserStatusBarStyle to "darkcontent". Unfortunately, other changes have to be applied manually. I succeeded for Android and I fight for Ios :-)

InappBrowser opening Paypal in Normal browser after installing Crosswalk in Ionic

I am using Braintree payments in my Ionic app. Before installing Crosswalk, it was working fine.
After installing Crosswalk, whenever I click on Paypal button in Dropin page, InappBrowser is trying to open the link in Normal External Browser instead of Webview. Any suggestions how to make Paypal open in Webview only.
I am testing this on Android device. I have cordova-plugin-crosswalk-webview and cordova-plugin-inappbrowser installed and below is my system info.
Cordova CLI: 6.2.0
Ionic Framework Version: 1.1.0
Ionic CLI Version: 1.7.15
Ionic App Lib Version: 0.7.2
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
Node Version: v0.12.4
Xcode version: Xcode 7.2.1 Build version 7C1002
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
The short answer to this is that Braintree does not support Cordova apps. Even if you found a solution to this specific issue, there are enough moving pieces in the compilation that Braintree wouldn't be able to support your integration if/when you went into production.
Things have moved on since #Raymond Berg's answer:
With the advent of Braintree's own PopupBridge, which provides emulated popup behaviour for Android and iOS Webviews, it's now possible to make webpages containing Braintree's JS SDK (and therefore Web Drop-in) work correctly in native Android and iOS Webviews.
Therefore I've just published cordova-plugin-inappbrowser-popup-bridge, which adds support for Braintree's PopupBridge functionality to Cordova's InappBrowser. This makes it possible to support Braintree-powered PayPal payments within the context of the InappBrowser element of Cordova-based Android and iOS apps.

Ionic workflow questions and facebook authentication issue

I'm trying to implement mobile application using Ionic. I'm following this, but unfortunately logging in doesn't work on real device. It works fine in the browser and the emulator. I did every step from the tutorial, I did the tutorial 2-3 times and still get the same error.
I am logged in successfully on my device but then I see the following screen:
I already have both urls as redirect urls in my application settings in FB.
http://localhost:5000/oauthcallback.html
https://www.facebook.com/connect/login_success.html
I tried to debug OpenFB with alerts. I can see "cordova events" alert but then I have alerts on the first lines of loginWindow_loadStartHandler and loginWindow_exitHandler but they are not executed. I guess that the problem is there but I have no idea how to fix it.
if (runningInCordova) {
alert("cordova events");
loginWindow.addEventListener('loadstart', loginWindow_loadStartHandler);
loginWindow.addEventListener('exit', loginWindow_exitHandler);
}
Also I have some questions about Ionic and Phonegap.
I use Ubuntu and I am trying to build iOS and Android applications.
My application's structure is:
app/
hooks/
platforms/
plugins/
scss/
www/
Also I have InAppBrowser plugin:
cordova plugin add org.apache.cordova.inappbrowser
but this plugin is not part of app/www folder.
I am trying to build a phonegap application in their site. I made a .rar file of the app/www folder content and upload it. Everything seems to be fine. But in Phonegap site when I click PLUGINS, I see This application has no plugins. How should I add inappbrowser to the application, maybe that is the reason why my FB authentication doesn't work. If I build the whole app folder, again I see the same message - This application has no plugins.
So when create an archive file of the content for Phonegap, which folder I should archive - the whole app folder with all subfolders or only app/www? What is the correct flow? Also how crossplatform app should now about added plugins?
I ran into this issue today, if someone is still looking for the solution for this:
loginWindow.addEventListener('loadstart',
loginWindow_loadStartHandler);
is implemented in the js file, but the loadstart event never fires on my Android (but works on WindowsPhone cordova javascript app), instead i added:
loginWindow.addEventListener('loadstop',
loginWindow_loadStartHandler);
,which works on both Android and WP (with InAppBrowser 1.2.0), IOS test is still ahead.

Ios smsComposer phonegap plugin works with cordova-2.1.0 js file or not

I am able to integrate iOS smsComposer phonegap plugin in cordova-1.9.0 but not able to integrate with cordova-2.1.0 js file. What could be the issue. Anyone worked on that plugin or is that plugin supports cordova-2.1.o or not and one more thing how to figure out whether phone gap plugins support our current cordova-x.x.x or not.
There is a new version of SMSComposer as of last month at
git phonegap plugins
I have it working with cordova-2.2.0.js
NOTES:
there's a file that they use: SMSComposer.js I had to change "Cordova" to "cordova" to get it working.
Also it is for older iOS versions. I think I broke it by changing that in Xcode, the first time I worked w the plugin.