将window.navigator.standalone添加到UIWebView DOM

4
您知道通过轻按+按钮可以在 Mobile Safari 中安装“WebApp”吗?通过通过主屏幕启动此应用程序,您的 WebApp 知道它是从主屏幕启动的,因为window.navigator.standalone设置为1...

嗯...

我使用 UIWebView 制作了一个 iOS 应用程序,它加载 Web 应用程序。现在我想将 window.navigator.standalone 属性添加到我的 WebApp 的 dom 中...是否有可能?

谢谢

3个回答

1

从Objective C向Webview注入一些Javascript以手动设置参数

[webView stringByEvaluatingJavaScriptFromString:@"window.navigator.standalone=1"];

-Dx


1
似乎不起作用,即使执行后,值window.navigator.standalone仍然为false - Chetan
iOS 6.1:在webViewDidFinishLoad上实现的代码,但结果相同。 window.navigator.standalone 的值仍为 false :( - CedX
这个问题有人找到答案了吗?无论怎么设置,它似乎始终是 false。 - Casey
@casey 请看我下面的回答。 - hexalys
检查这个答案 https://dev59.com/Jk_Ta4cB1Zd3GeqPFfgy#64965600,它展示了如何覆盖那个标志。 - Martin Mlostek

0

这是不可能的。navigator.standalone 像大多数本地导航器属性一样是只读的。我刚用iPhone模拟器在检查器中进行了检查。


0

将以下内容注入您的 Webview

let script= "Object.defineProperty(navigator, 'standalone', {get:function(){return true;}});"
evaluateJavaScript(script, completionHandler: nil)

这样你甚至可以覆盖只读对象


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接