ios全屏模式下避免跳转到safari浏览器,在苹果safari上实现全屏效果(让web页面以独立app的形式运行)

这篇具有很好参考价值的文章主要介绍了ios全屏模式下避免跳转到safari浏览器,在苹果safari上实现全屏效果(让web页面以独立app的形式运行)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

apple-mobile-web-app-capable

你可能不知道的一个功能:web 单页面应用可以在手机端以类似独立 app 的形式运行。

就像下面这样,

  1. 没有上下的工具栏
  2. 切换的时候跟普通 app 没什么不同
苹果官方对 safari可用 meta 标签的说明 Safari HTML Reference - Supported Meta Tags

只需要添加下面一行即可

<!--ios和Android都支持-->
<meta name="apple-mobile-web-app-capable" content="yes">
<!--仅Android支持-->
<meta name="mobile-web-app-capable" content="yes">

添加meta标签,打开谷歌浏览器点击添加到主屏幕,重新启动,实现自动全屏(没有底部的地址栏了)。

apple-mobile-web-app-capable如果设置contentyes,应用以全屏模式运行,否则不会在全屏中运行。

同时,也要搭配

<meta name="apple-mobile-web-app-status-bar-style" content="default">

apple-mobile-web-app-status-bar-style用于定义状态栏文字颜色的,可选值有defaultblack-translucentblack

black-translucent为透明,内容滚动的时候,透过状态栏可以看到下面的内容。

defaultblack为不透明,看不到下面的内容。

default为白色  black为黑色  black-translucent为灰色半透明

如果不放心,就再配合下面这个meta,将顶部状态栏变为白色。

<meta name="theme-color" content="#fff">

可以参考我的另一篇文章:《置网页在Safari15浏览器顶部状态栏的颜色》

以上meta只会在你把这个页面添加到主屏幕时才会生效。

注意这个功能需要你的页面是或项目是单页面应用才行,比如 vue 项目。如果是多个 html 页面的项目,在使用的时候很不友好,像这样:(跳转时上面和下面会多出工具栏)

添加桌面图标

有了这种功能,我们还需要给独立web页面添加一个在桌面上显示的图标。

 <!-- 自定义应用名称 -->
 <meta name="application-name" content="wubin.work">
 <!-- 自定义图标 -->
 <link rel="apple-touch-icon-precomposed" sizes="120x120" href="%PUBLIC_URL%/icon.ico">
这里会有一个app图标尺寸问题一般使用120*120,当然对于不同的设备会用不同的尺寸对应:下面是详细尺寸

apple-mobile-web-app-capable,HTML前端,ios,safari,javascript

简单总结下:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 网站开启对 web app 程序的支持 具体表现为去除浏览器地址栏和底部导航栏 -->
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- 
用来定义顶部状态栏的形式默认是default为白色 black为黑色 black-translucent为灰色半透明
(会占据屏幕的约20px,不同的设备可能会有差异)
-->
<!-- 
在定义了apple-mobile-web-app-capable的前提下,
设置状态栏的属性值apple-mobile-web-app-status-bar-style才有效; 
-->
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="application-name" content="web独立页面的名称">
<!-- 放在桌面上的图标 -->
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="icon.png">
<!-- 状态栏的背景色 -->
<meta name="theme-color" content="#fff">

还可以配置启动动画

<!-- apple-touch-startup-image用来配置启动动画 -->
<!-- 这里要注意,这里图片的尺寸要和设备的静态图片显示尺寸完全对应,差一个像素都会导致启动动画无法显示 -->
<!-- 下面列举了iPhone的所有尺寸(ps:为了方便大家就全部贴出来了!!) -->
<!-- iPhone 678 startup image @2x-->  
<link href="%PUBLIC_URL%/750x1334.png" media="(device-width: 375px) and (device-height: 667px)  and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPhone 678p startup image @3x-->
<link href="%PUBLIC_URL%/1242x2208.png" media="(device-width: 414px) and (device-height: 736px)  and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image"> 
<!-- iPhone X Xs startup image @3x-->
<link href="%PUBLIC_URL%/1125x2436.png" media="(device-width: 375px) and (device-height: 812px)  and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">
<!-- iPhone XR startup image @2X -->
<link href="%PUBLIC_URL%/828x1792.png" media="(device-width: 414px) and (device-height: 896px)  and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPhone XR Max startup image @3x-->
<link href="%PUBLIC_URL%/1242x2688.png" media="(device-width: 414px) and (device-height: 896px)  and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image">   

apple-mobile-web-app-capable,HTML前端,ios,safari,javascript

在IOS手机上将页面添加到桌面

具体步骤如下所示:

重点是在safari中打开,然后点击中间的分享,找到“添加到主屏幕”

apple-mobile-web-app-capable,HTML前端,ios,safari,javascript

在PC端上可用的全屏

<template>
  <button @click="handleClick">切换全屏模式</button>
</template>
const handleClick = () => {
	if(document.fullscreenElement) {
		document.exixFullscreen()
	} else {
		document.documentElement.requestFullscreen()
	}
}

监听全屏事件:

// 方式1
document.onfullscreenchange = () => {
	// do something
}

// 方式2
document.addEventListener('fullscreenchange', () => {
	// do something
})
w3c标准 谷歌 火狐 IE
置为全屏模式 requestFullScreen webkitRequestFullScreen

mozRequestFullScreen

msRequestFullScreen
退出全屏模式 exitFullscreen webkitExitFullscreen mozCancelFullScreen msExitFullscreen
当前全屏模式的元素

fullscreenElement

webkitFullscreenElement

mozFullScreenElement

msFullscreenElement

全屏API参考链接:全屏 API - Web API 接口参考 | MDN

 

ios全屏模式下避免跳转到safari浏览器待测试代码: 文章来源地址https://www.toymoban.com/news/detail-706958.html

//Mobile Safari in standalone mode
if (("standalone" in window.navigator) && window.navigator.standalone) {
        // If you want to prevent remote links in standalone web apps opening Mobile Safari, change 'remotes' to true
    var noddy,
        remotes = false;
    document.addEventListener('click', function(event) {
        noddy = event.target;
        //Bubble up until we hit link or top HTML element. Warning: BODY element is not compulsory so better to stop on HTML
        while (noddy.nodeName !== "A" && noddy.nodeName !== "HTML") {
            noddy = noddy.parentNode;
        }
        if ('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)) {
            event.preventDefault();
            document.location.href = noddy.href;
        }
    }, false);
    alert('请安装新版本!');
    location.href='../../dist/index.html';

}
    //ios8 兼容
   if( navigator.appVersion.match(/(iPad|iPhone|iPod)/g) && navigator.appVersion.match(/OS 8/g)){
   	$(document).ready(function(){
//   		$('#ios8_statusbar').show();
//   		$('body').css('padding-top','20px');
//   		$('#main_panel').css('top','20px');
   		
   	});
   }

到了这里,关于ios全屏模式下避免跳转到safari浏览器,在苹果safari上实现全屏效果(让web页面以独立app的形式运行)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【阻止IE强制跳转到Edge浏览器】

    由于微软开始限制用户使用Internet Explorer浏览网站,IE浏览器打开一些网页时会自动跳转到新版Edge浏览器,那应该怎么禁止跳转呢? 1、点击电脑左下角的“搜索框”或者按一下windows键。 2、输入“internet”,点击【Internet选项】。 3、点击【高级】。 4、找到“浏览”选项栏,

    2024年02月14日
    浏览(85)
  • 解决一打开IE浏览器就自动跳转到Edge浏览器的问题

    打开Internet Explorer浏览器后会自动跳转到Microsoft Edge浏览器。 打开控制面板,选择“Internet选项”,选择【高级】选项卡,取消勾选“启用第三方浏览器扩展*”即可。

    2024年02月11日
    浏览(73)
  • 谷歌浏览器强制跳转到 https 的解决办法

    一、在谷歌浏览器的地址栏输入:chrome://net-internals/#hsts 二、可以看到如下的页面: 三、Delete domain 栏的输入框中输入http访问的域名,点击“delete”按钮。 四、Query domain 栏中搜索刚才输入的域名,点击“query”按钮后如果提示“Not found”,完成配置。

    2024年02月13日
    浏览(54)
  • 打开IE浏览器就会跳转到Microsoft Edge微软浏览器如何解决

    某件事情必须要用到IE浏览器 一打开IE浏览器时却老是会跳转到Microsoft Edge浏览器,不知道如何解决 1、因为微软已将开发重心放在基于Chromium的新版Edge浏览器上,而传统的InternetExplorer则逐渐被淘汰。 2、也就是说,如果当前使用的是IE浏览器,可以考虑切换到新版Edge浏览器,

    2024年02月11日
    浏览(75)
  • 苹果IOS安装IPA, plist形式 Safari 浏览器点击安装

    苹果开发者账号链接 网址: https://developer.apple.com/account 苹果应用上架链接 网址: https://appstoreconnect.apple.com/ 应用证书文件及打包 参考教程: 最新uniapp打包IOS详细步骤(2022) 证书在线制作工具 网址: https://app.121xuexi.com/ iPhone直接安装IPA 可以使用 爱思助手 - 应用游戏 - 导入安装

    2024年02月08日
    浏览(77)
  • Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器

    当有些情况下,需要使用ie浏览器时,但是当我们打开ie浏览器会自动跳转到Microsoft Edge浏览器,该如何设置,来禁止它自动跳转呢?

    2024年02月11日
    浏览(63)
  • 从短信,H5页面浏览器跳转到微信小程序指定页面

     在H5页面或者短信链接中要进行小程序跳转,所以需要通过生成具体页面的链接进行跳转 1、参考链接生成接口,详见微信官方文档地址:urllink.generate | 微信开放文档      重点参数如图:       2、后端调用api进行生成  请求完的结果: 3、前端页面入口  4、编写一个中间

    2024年02月11日
    浏览(71)
  • 让苹果iOS的手机iPhone和电脑Safari浏览器支持油猴脚本

    官方的AppStore是没有油猴插件(Tampermonkey)的,官方插件不仅少,功能被阉割,相对弱小,还收费。嗯,这很苹果第三方拓展。 这是油猴插件(Tampermonkey)的下载地址,上面是老版本,下面是新版本。 https://safari.tampermonkey.net/tampermonkey.safariextz https://www.tampermonkey.net/?browser=s

    2024年02月07日
    浏览(108)
  • JS一些常用判断(包括判断是否是苹果(ios)/安卓(Android)、是否是Safari浏览器、检测浏览器语言等等)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 参考链接 JS判断客户端是否是iOS或者Android:http://caibaojian.com/browser-ios-or-android.html

    2024年02月04日
    浏览(80)
  • mac的safari浏览器如何开启开发者模式

    在windows中或者其他浏览器中,大家习惯了统一按F12开启开发者模式。但是在safari中按F12没有反应,那么应该怎么开启开发者模式呢?看步骤: 1、打开safari浏览器后,点击左上角的“Safari浏览器” → “偏好设置”: 2、选择上面的“高级”选项,勾选最下面的“在菜单栏中显

    2024年02月12日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包