IOS 开发之应用唤起实现原理详解

 更新时间:2016年12月31日 16:51:34   投稿:lqh  
这篇文章主要介绍了IOS 开发之应用唤起实现原理详解的相关资料,需要的朋友可以参考下

一、什么是iOS应用唤起

IOS中的应用唤起用来实现以下功能:在浏览器中可以通过某些方式打开IOS手机本地的app,如果该app没有安装可以跳转到该应用对应的App Store的下载页。 

二、App store下载页连接

App store中某个应用的下载页连接形如:https://itunes.apple.com/us/app/id399608199。在PC端浏览器打开该连接会跳转到应用详情页的PC端界面。在Safari中打开该连接,浏览器会询问是否在App Store中打开该连接,选择打开即会自动打开App Store并跳转到对应应用的下载界面。 

三、URL Schemes

URL Schemes和URL很类似,一个URL可以指向某个网站(如https://www.apple.com指向苹果官网),也可以指向该网站内部具体的某个页面(如https://www.apple.com/mac/指向苹果官网的Mac页面)。一个URL Schemes也可以指向某个APP(weixin://指向微信这个APP)或者APP内部的某个功能(weixin://dl/moments/指向微信朋友圈功能)。

基本URL Schemes指的是如weixin://的这部分。通过这个基本URL Schemes,可以打开某个IOS APP应用。比如在Safari的地址栏中输入weixin://,浏览器就会提示是否打开微信,选择打开,手机就会自动打开本地的微信应用。

 四、IOS应用唤起方法

1.直接跳转法(支持各个版本IOS系统)

最简单的方法,在页面中使用a标签制作一个按钮,让其href指向打开APP的基本URL Schemes即可。考虑到可能本地没有安装,这时需要通过js代码让浏览器跳转到对应的App Store下载页。可以设定一个合理的反映时间时间,如果超时还没有打开应用的话,就跳转到下载页面,可以使用setTimeout方法,代码如下:

$('a').click(function() { 
  location.href = 'weixin://'; 
  setTimeout(function() { 
    location.href = 'https://itunes.apple.com/us/app/id399608199'; 
  }, 500); 
} 

2.使用iframe(仅支持IOS8及其以下版本)

通过为body中添加一个隐藏的iframe,其内部的src设置成对应的连接,即可实现该功能,代码如下:

var url = { 
 open: 'weixin://', //对应的Scheme 
 down: 'https://itunes.apple.com/us/app/id399608199'  //对应的下载地址 
}; 
var iframe = document.createElement('iframe'); //创建一个iframe 
var body = document.body; 
iframe.style.cssText='display:none;width=0;height=0'; //设置该iframe为不可见的 
var timer = null; 
var openapp = document.getElementById('openapp'); 
openapp.addEventListener('click', function() { 
 body.appendChild(iframe);  //点击打开app按钮后,将这个iframe添加到body中 
 iframe.src = url.open; //设置iframe的src为weixin://,通过这个iframe进行跳转 
 timer = setTimeout(function() { 
  wondow.location.href = url.down; //500ms后跳转到下载界面 
 }, 500); 
}, false) 

3.使用Universal links(目前仅IOS9支持)

Universal links是IOS9新增的功能,它是一个普通的HTTP连接。通过Universal links,能够方便的通过传统的HTTP链接来启动APP(如果iOS设备上已经安装了app), 或者打开对应下载界面(iOS设备上没有安装app)。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • iOS应用开发中使用Auto Layout来适配不同屏幕尺寸

    iOS应用开发中使用Auto Layout来适配不同屏幕尺寸

    这篇文章主要介绍了iOS应用开发中使用Auto Layout来适配不同屏幕尺寸的方法,根据Xcode IDE下的实际调试步骤讲解其用法,需要的朋友可以参考下
    2016-03-03
  • Objective-C实现冒泡排序算法的简单示例

    Objective-C实现冒泡排序算法的简单示例

    冒泡排序即是依次比较相邻的两个数,如果后面的数较小则交换到前面一个数的位置上,这里我们来看一下Objective-C实现冒泡排序算法的简单示例
    2016-06-06
  • 如何在IOS中使用Cordova插件

    如何在IOS中使用Cordova插件

    这篇文章主要介绍了如何在IOS中使用Cordova插件,包括搭建和使用方法,如果对Cordova感兴趣的同学,可以参考下
    2021-04-04
  • iOS通过block在两个页面间传值的方法

    iOS通过block在两个页面间传值的方法

    不知道大家有没有发现,在实际开发中使用block的地方特别多,block比delegate和notification有着更简洁的优势,下面这篇文章我们来简单了解一下block在两个页面之间的传值。有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2016-11-11
  • iOS11带来的技术变化及注意事项

    iOS11带来的技术变化及注意事项

    这篇文章给大家介绍了ios11带来了技术变化及注意事项,在相册权限上有很大变化,具体内容详情大家参考下本文
    2017-09-09
  • iOS应用中UICollectionViewCell定制Button

    iOS应用中UICollectionViewCell定制Button

    这篇文章主要介绍了iOS应用中UICollectionViewCell如何定制Button,设置每行显示的按钮的个数,自定制按钮的显示样式,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • 详解ios中自定义cell,自定义UITableViewCell

    详解ios中自定义cell,自定义UITableViewCell

    本篇文章主要介绍了ios中自定义cell,自定义UITableViewCell,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • iOS开发中使用FMDB来使程序连接SQLite数据库

    iOS开发中使用FMDB来使程序连接SQLite数据库

    这篇文章主要介绍了iOS开发中使用FMDB来使程序连接SQLite数据库,SQLite是一个简单的嵌入式数据库,非常适合轻量级使用,需要的朋友可以参考下
    2015-11-11
  • iOS指纹识别的简单应用

    iOS指纹识别的简单应用

    这篇文章主要为大家详细介绍了iOS指纹识别的简单应用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • iOS之加载Gif图片的方法

    iOS之加载Gif图片的方法

    本篇文章主要介绍了iOS之加载Gif图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论