移动端WebApp隐藏地址栏的方法

作者:junjie 时间:2022-09-26 20:26:29 

1、很多资料说,添加以下代码,可以隐藏地址栏,但我试了很多次,貌似不成功啊。


<meta name="apple-mobile-web-app-capable" content="yes" />


2、我们可以通过另一种方法来隐藏地址栏。在页面加载完成之后滚动窗口,这个确实有效,唯一要注意的是页面高度必须够高,核心代码如下:


<script type="text/javascript">
      addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false);
      function hideURLbar(){
                window.scrollTo(0,1);
      }
</script>


3、但是当页面高度自适应窗口(height:100%),以上方法就不适用了,我们需要采用特殊方法:


$('div').css("height",window.innerHeight+100);  //强制让内容超过 

window.scrollTo(0, 1); 

$("div").css("height",window.innerHeight);  //重置成新高度 

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);  //如果不想让页面滑动,可以加上这段代码

4、分享一下开源项目

移动前端界面进去的时候,我们会看到地址工具条,这看起来不怎么像一个APP,那么怎么隐藏掉这个地址条,下面提供了一个比较合适的代码,支持ios和Android.


/*! Normalized address bar hiding for iOS & Android (c) @scottjehl MIT License */
(function( win ){
var doc = win.document;

// If there's a hash, or addEventListener is undefined, stop here
if(!win.navigator.standalone && !location.hash && win.addEventListener ){

//scroll to 1
win.scrollTo( 0, 1 );
var scrollTop = 1,
getScrollTop = function(){
return win.pageYOffset || doc.compatMode === "CSS1Compat" && doc.documentElement.scrollTop || doc.body.scrollTop || 0;
},

//reset to 0 on bodyready, if needed
bodycheck = setInterval(function(){
if( doc.body ){
clearInterval( bodycheck );
scrollTop = getScrollTop();
win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
}
}, 15 );

win.addEventListener( "load", function(){
setTimeout(function(){
//at load, if user hasn't scrolled more than 20 or so...
if( getScrollTop() < 20 ){
//reset to hide addr bar at onload
win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
}
}, 0);
}, false );
}
})( this );

详细请访问:https://github.com/scottjehl/Hide-Address-Bar

如果你的浏览器支持标签隐藏的话:


<meta name="apple-mobile-web-app-capable" content="yes" />

标签:WebApp,隐藏,地址栏
0
投稿

猜你喜欢

  • Maven本地jar引用的实现方法

    2021-08-09 15:42:45
  • 完美解决idea没有tomcat server选项的问题

    2022-02-12 04:20:54
  • SpringMVC RESTFul实战案例访问首页

    2022-03-12 00:21:01
  • SpringBoot使用validation-api实现参数校验的示例

    2022-12-02 14:33:40
  • Mybatis Plugin拦截器开发过程详解

    2021-07-15 22:30:18
  • javaweb上传下载实例完整版解析(上)

    2021-07-31 05:40:23
  • Java实战之实现用户登录

    2022-08-03 14:42:55
  • 浅析Java中JSONObject和JSONArray使用

    2022-06-05 14:58:30
  • java poi sax方式处理大数据量excel文件

    2021-09-19 19:28:48
  • Java ThreadPoolExecutor的参数深入理解

    2022-08-29 10:08:39
  • SpringBoot上传文件到本服务器 目录与jar包同级问题

    2022-01-27 07:15:41
  • SpringAOP 如何通过JoinPoint获取参数名和值

    2023-11-01 00:50:36
  • SpringBoot集成Elasticsearch过程实例

    2022-07-30 20:08:56
  • java8中的默认垃圾回收器(GC)

    2021-12-01 04:27:30
  • java实现单人版五子棋游戏

    2021-09-03 03:24:20
  • C# 大小写转换(金额)实例代码

    2021-07-06 00:33:56
  • Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除

    2022-03-20 00:33:28
  • C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解

    2022-06-02 05:22:45
  • Java中Validated、Valid 、Validator区别详解

    2023-11-11 13:53:31
  • Android 实现滑动的六种方式

    2021-12-05 08:27:48
  • asp之家 软件编程 m.aspxhome.com