主要参考该篇文章 iOS开发 在桌面生成快捷方式(1)
此文主要是记录作用,就不细说一些原理的东西,感兴趣的可以参考上边的那篇文章,写的很好
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="apple-mobile-web-app-capable" content="yes"><!--定义应用全屏展示的-->
<meta name="apple-mobile-web-app-status-bar-style" content="white"> <!--设置状态栏的属性值,只有在定义了 apple-mobile-web-app-capable的前提下才有效。-->
<meta content="text/html charset=UTF-8" http-equiv="Content-Type" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" /> <!--width用于指定宽度,initial-scale指定初始化的缩略比例,minimum-scale指定缩小的比例,而maximum-scale则是放大的比例,当然这些缩放都取决于user-scalable——决定用户是否能缩放页面。-->
<link rel="apple-touch-startup-image" sizes="2048x1496" href=""> <!--设置快捷方式的启动页,也就是快捷方式点击后,在启动APP之前展示的那个页面,不建议设置-->
<link rel="apple-touch-icon" href="./images/logo.png"> <!-- 快捷方式的图标,有两种属性值apple-touch-icon和apple-touch-icon-precomposed,区别就在于是否会应用iOS中自动给图标添加的那层高光。-->
<title>云仓</title> <!-- 这个title将会是桌面快捷方式的默认标题,在生成时可以手动修改 -->
</head>
<body onload="startApp()">
<!-- href后的链接是APP对外开放的scheme,只有scheme与APP中设置的一致,才能打开APP,
而scheme后面的值可以作为打开APP后的特殊操作,如果仅仅是打开,后面随便写就行,APP中不进行处理即可 -->
<a href="com.gbei.ydc://vcs" id="qbt" style="display:none"></a>
<span id="msg"></span>
</body>
<script>
function handleVisibilityChange() {
if (document.hidden) {} else {
var lnk = document.getElementById("qbt").click();
}
}
// <!-- 这段js代码是用来判断是展示网页图片还是打开APP,
// window.navigator.standalone 是用来判断网页是否是全屏展示,
// 如果是全屏展示,那么就是点击快捷方式打开的,直接执行打开APP的操作即可,
// 如果不是全屏展示,那么就是通过URL在浏览器中打开的,直接展示网页即可-->
if (window.navigator.standalone == true) {
var lnk = document.getElementById("qbt").click();
document.addEventListener("visibilitychange", handleVisibilityChange)
} else {
document.getElementById("msg").innerHTML='<center><img width = 100% src="./images/guide.png"></center>';
}
</script>
</html>
添加桌面快捷方式(及打开我们上边的那个html文件,在safiri引导用户将其添加到主屏幕)
if let url = URL(string: H5Api.cvsQuickLink) { // url为你的html的路径
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
在Target -> Info -> URL Types 中添加scheme 我此处的scheme为com.gbei.ydc
在appdelegate中处理
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if url.absoluteString == "com.gbei.ydc://vcs" {
// 处理
}
}