当前位置: 移动技术网 > 移动技术>移动开发>IOS > IOS 开发之应用唤起实现原理详解

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

2019年07月24日  | 移动技术网移动技术  | 我要评论

一、什么是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)。

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网