iOS 9.2 Universal Links / Branch
Posted: 30 Jan 2016 23:07
I have a IoT Web site that supports surveillance cameras for users over rtsp. I use VLC to allow users to view their cameras without the need for a custom application on the various platforms. The Windows plugin works fine. On Android, the VLC application works fine, and if the VLC application isn't present, goes to the Play Store to allow the user to load VLC. On iOS prior to 9.2, this scheme also worked. VLC would work if installed, or go to the App Store if VLC was not installed.
The problem comes with iOS 9.2 and beyond. It appears Apple has killed Universal Links (or Deep Links) used in this way. They now present a modal verification prompt asking if you want to open the linked application (in this case VLC), which allows to App Store to load every time even if the VLC app is already present. I understand why Apple took this step, but it means developers with legitimate reasons for doing this now must find another way. Looking at the Apple documentation on this, it appears they allow an application to be registered (see branch.io) by the application's owner that will allow that application to be linked to. I'm hoping that VideoLAN can look into the matter, see the value in participating, and register VLC for Mobile so that VLC can continue to be used as the excellent viewer it is on iOS.
Below is the JavaScript that worked before iOS 9.2:
<script type="text/javascript">
function startViewer()
{
var now = new Date().valueOf();
setTimeout(function () {
if (new Date().valueOf() - now > 1000) return;
window.location = "itms://itunes.apple.com/us/app/vlc-for-mobile/id650377962"; }, 25);
window.location = "vlc://rtsp://192.168.1.69:554/0";
}
</script>
The problem comes with iOS 9.2 and beyond. It appears Apple has killed Universal Links (or Deep Links) used in this way. They now present a modal verification prompt asking if you want to open the linked application (in this case VLC), which allows to App Store to load every time even if the VLC app is already present. I understand why Apple took this step, but it means developers with legitimate reasons for doing this now must find another way. Looking at the Apple documentation on this, it appears they allow an application to be registered (see branch.io) by the application's owner that will allow that application to be linked to. I'm hoping that VideoLAN can look into the matter, see the value in participating, and register VLC for Mobile so that VLC can continue to be used as the excellent viewer it is on iOS.
Below is the JavaScript that worked before iOS 9.2:
<script type="text/javascript">
function startViewer()
{
var now = new Date().valueOf();
setTimeout(function () {
if (new Date().valueOf() - now > 1000) return;
window.location = "itms://itunes.apple.com/us/app/vlc-for-mobile/id650377962"; }, 25);
window.location = "vlc://rtsp://192.168.1.69:554/0";
}
</script>