Check if a URL scheme is registered on iOS or Android in Cordova

陌路散爱 提交于 2021-02-10 07:22:57

问题


I want to check if a particular app is installed and if it is installed, invoke it.

AFAIK, the way to do it is to check if the custom url scheme of the app is registered and use that url to launch the app.

Is there a way for me to do this in my Cordova app?

To be very specific I want to check if the Google Maps application is installed on iOS and if it is, launch it with its custom url else show the default Apple maps.

This url : https://developers.google.com/maps/documentation/ios/urlscheme : shows how to do it in Objective-C, but how do I do it in Javascript in my Cordova app?

I could not find any plugin to achieve the same. Other questions on SO deal with either doing this from a native app or JS on a regular website (in the browser). The most common work-around is to try launching and use a timeout to see if the app launch failed and still my app is running. This is pretty unclean. Access to the iOS API canOpenURL through JS would be best.

Hints?


回答1:


Cordova does not ship with this feature. There is a plugin which implements it for iOS, though.

  • https://github.com/philbot5000/CanOpen

I did not find anything for Android yet, but I do not think this would be hard to do in native Android Code. Even if you are not proficient with Objective-C or Java and never intend to write fully native apps, you should learn some basics if you want to build apps with Cordova.

Small and simple plugins are really easy to do. Read the docs and have a look at the code of some simple plugins to see how it is done. For example the source code of the one above or of the one below is really simple and straightforward to understand:

  • https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin


来源:https://stackoverflow.com/questions/23763120/check-if-a-url-scheme-is-registered-on-ios-or-android-in-cordova

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!