-->

Ajax call to check if native iPhone application ex

2019-07-24 13:01发布

问题:

For our iPhone native application we have a URL : example://

On the iPhone if I type this URL (example://) in safari it automatically opens up my application.

From my "regular" website I have a link which when the user clicks it opens the application. The problem is that if the application is not installed on the iPhone it throws "Unable to open" error.

So before rendering the link on my "regular" site I need to check if the app is installed, one solution is to make an Ajax call and check for status code:

$.ajax({
                    type: 'POST',
                    url: 'example://',                   
                    complete: function (transport) {
                        if (transport.status == 200) {
                            alert('Success');                            
                        } else {
                            alert(transport.status);
                            alert('Failed');
                        }
                    }
                });

But this code is always returning a status code "0".

Is there a way to find out from the web if the native iPhone app is installed?

回答1:

If u are referring to Mobile Safari, you're out of luck. There's no documented public API that I know of that can do this. Mobile Safari is sandboxed away from the OS.

If it's in a webview within an app, u can request the URL and let the webview delegate talk to the native app / query the handling of example://. Otherwise, no way the browser can know existence of any installed app.