Cocoa touch 将window.navigator.standalone添加到UIWebView DOM

Cocoa touch 将window.navigator.standalone添加到UIWebView DOM,cocoa-touch,ipad,web-applications,ios,Cocoa Touch,Ipad,Web Applications,Ios,你知道如何通过移动Safari点击+按钮来安装“webapp”吗? 通过主屏幕启动此应用程序,您的Web应用程序知道它是从主屏幕启动的,因为window.navigator.standalone设置为1 嗯 我制作了一个iOS应用程序,带有加载web应用程序的UIWebView。现在我想将window.navigator.standalone属性添加到我的webapp的dom中。。。可能吗 谢谢从objective C向webview中注入一些Javascript以手动设置参数 [webView

你知道如何通过移动Safari点击+按钮来安装“webapp”吗? 通过主屏幕启动此应用程序,您的Web应用程序知道它是从主屏幕启动的,因为
window.navigator.standalone
设置为1

我制作了一个iOS应用程序,带有加载web应用程序的
UIWebView
。现在我想将
window.navigator.standalone
属性添加到我的webapp的dom中。。。可能吗


谢谢

从objective C向webview中注入一些Javascript以手动设置参数

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

-这是不可能的<代码>导航器。独立的与大多数本机导航器属性一样是只读的。我刚刚在Inspector中使用iPhone模拟器进行了检查。

将以下内容插入到您的webview中

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

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

似乎不起作用,值
window.navigator.standalone
即使在此执行之后仍然保持
false
。iOS 6.1:在webViewDidFinishLoad上实现的代码:但结果相同。
window.navigator.standalone
的值保持为
false
:(有人找到过这个问题的答案吗?不管它看起来是如何设置的,它都保持为false。@casey在下面看到我的答案。检查答案,它显示了如何覆盖该标志