【问题标题】:Add window.navigator.standalone to UIWebView DOM将 window.navigator.standalone 添加到 UIWebView DOM
【发布时间】:2010-08-23 11:02:39
【问题描述】:

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

嗯..

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

谢谢

【问题讨论】:

    标签: cocoa-touch ipad web-applications ios


    【解决方案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 请看下面我的回答。
    • 检查答案stackoverflow.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)
      

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

      【讨论】:

        猜你喜欢
        • 2011-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-11
        相关资源
        最近更新 更多