gpt4 book ai didi

javascript - iOS Web 应用程序 - 仅在添加到主屏幕时显示内容?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:23 24 4
gpt4 key购买 nike

我以前见过对此的“解决方案”,但有一个重大缺陷!

这是我要实现的目标;

我有一个网络应用程序需要用户登录才能使用。出于各种原因,我不希望它在常规 Safari 中使用,只能通过主屏幕使用(从美学上讲,它只有在全屏时才真正“有效”)。

因此,当用户浏览网站时,它应该检测它是通过主屏幕打开的(在这种情况下它显示登录页面)还是通过常规的 safari(在这种情况下它显示启动画面邀请浏览者访问)将其添加到他们的主屏幕)。

我可以成功检测它是通过主屏幕打开还是现在(使用 window.navigator.standalone),但是我遇到的所有解决方案都涉及将用户重定向到另一个页面,如果它不是通过主屏幕打开.这样做的问题是用户会为错误的页面添加书签(或添加到主屏幕)。据我所知,无法指定要添加到主屏幕的不同页面。

我已经尝试了以下方法,但似乎不起作用;

/* Added to login page head */
$(document).ready()
if (window.navigator.userAgent.indexOf('iPhone') != -1) {
if (window.navigator.standalone == true) {
initialize();
}else{
$('.container').load('/install.cfm')
}
}else{
$('.container').load('/install.cfm')
}

编辑:根据@scunliffe 的评论,我现在尝试了以下方法,但也不起作用(jQuery 在脚本执行之前加载,所以这不应该是问题所在);

if (window.navigator.userAgent.indexOf('iPhone') != -1) {
if (window.navigator.standalone == true) {
$('#logindiv').show;
}else{
$('#installdiv').show;
}
}else{
$('#installdiv').show;
}

最佳答案

如果用户使用的是 iphone/iOS 设备,您能否更改您的逻辑,使登录页面成为默认页面?如果独立运行,他们会收到消息吗?

$(document).ready(function(){
if(navigator.userAgent.indexOf('iPhone') != -1){//test for other iOS devices?
if(window.navigator.standalone == true){
//do stuff!
initialize();
} else {
//show message telling user to add to their home screen...
}
} else {
//show message that this must be run on device X/Y/Z...
}
});

更新:

根据您更新的示例,您只需修改代码以将显示/隐藏作为方法调用。

$(document).ready(function(){
if(window.navigator.userAgent.indexOf('iPhone') != -1){
if(window.navigator.standalone == true){
$('#logindiv').show();
} else {
$('#installdiv').show();
}
} else {
$('#installdiv').show();
}
});

<div id="logindiv">
...stuff to login here...
</div>
<div id="installdiv">
...note to install here...
</div>

关于javascript - iOS Web 应用程序 - 仅在添加到主屏幕时显示内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15205680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com