将 window.navigator.standalone 添加到 UIWebView DOM
Posted
技术标签:
【中文标题】将 window.navigator.standalone 添加到 UIWebView DOM【英文标题】:Add window.navigator.standalone to UIWebView DOM 【发布时间】:2010-08-23 11:02:39 【问题描述】:您知道如何通过 Mobile Safari 通过点击 + 按钮来安装“webapp”吗?
通过主屏幕启动这个应用程序,您的 Web 应用就知道它是从主屏幕启动的,因为 window.navigator.standalone
设置为 1...
嗯..
我制作了一个带有 UIWebView
的 ios 应用程序,它加载了一个 Web 应用程序。现在我想将 window.navigator.standalone
属性添加到我的 webapp 的 dom 中……这可能吗?
谢谢
【问题讨论】:
【参考方案1】:从objective C向webview中注入一些javascript来手动设置参数
[webView stringByEvaluatingJavaScriptFromString:@"window.navigator.standalone=1"];
-Dx
【讨论】:
似乎不起作用,即使在执行此操作后,window.navigator.standalone
的值仍然是 false
。
iOS 6.1:在 webViewDidFinishLoad 上实现的代码:但结果相同。 window.navigator.standalone
的值仍然是 false
:(
有人找到答案了吗?无论它看起来如何设置,它仍然是错误的。
@casey 请看下面我的回答。
检查答案***.com/a/64965600/3290623 它显示了如何覆盖该标志【参考方案2】:
这是不可能的。 navigator.standalone
像大多数原生导航器属性一样只读。我刚刚在 Inspector 中检查了 iPhone 模拟器。
【讨论】:
【参考方案3】:将以下内容注入到您的 webview 中
let script= "Object.defineProperty(navigator, 'standalone', get:function()return true;);"
evaluateJavaScript(script, completionHandler: nil)
这样你甚至可以覆盖只读对象
【讨论】:
以上是关于将 window.navigator.standalone 添加到 UIWebView DOM的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等