【问题标题】:Is there any browser apps can copy webapp onto iPad and viewing them in an embedded browser like phonegap是否有任何浏览器应用程序可以将 webapp 复制到 iPad 并在诸如 phonegap 之类的嵌入式浏览器中查看它们
【发布时间】:2013-01-09 07:43:38
【问题描述】:

我知道我可以使用 phonegap 为 Apple 应用程序构建 webapp,但如果我想在 iPad 上使用它,我必须成为 Apple Developer(99 美元或 299 美元/年)。但我只想小规模使用它。

所以我想知道是否有任何浏览器应用程序可以将所有 webapp 的文件复制到 iPad 的文件夹中,并在像 phonegap 这样的嵌入式浏览器中查看它们?我知道我可以将 webapp 添加到主屏幕并像标准应用一样与它们交互,但我希望它离线,因为 webapp 是 2GB 并且不需要互联网。

浏览器应用应该是全屏的,没有状态栏,没有Bonuce效果,并且自动加载index.html。

【问题讨论】:

    标签: html ipad cordova web-applications ios-standalone-mode


    【解决方案1】:

    如果您希望您的应用程序处于离线状态,您有两种选择:

    • 您越狱了要在其中部署应用程序的手机;
    • 您向 Apple 支付开发者证书,该证书允许您在自己的设备上进行部署,并通过 AppStore 提交以部署到其他用户设备。

    或者,如果您的网页是静态内容,您可以考虑使用 iBook Author 将它们打包为电子书,然后使用 iTunes 将其加载到您的设备中。不过,这可能不适用于 2GB 的数据。

    【讨论】:

    • 谢谢 Franci Penov,我的网页是静态内容,我发现 GoodReader 可以做到这一点,只需将所有 webapp 的文件复制到 GoodReader 的文档折叠并单击 index.html。但它不是免费的,我想一键打开webapp。
    【解决方案2】:

    是的,您可以使用元标记 apple-mobile-web-app-capable 和 HTML5 应用程序缓存来执行此操作。如您所见,您可以将应用程序添加到主屏幕。使用这种技术,应用程序也将离线和全屏运行。

    将此添加到您的 HTML <head>:

    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
    

    设置缓存:

    manifest="cache.manifest" 添加到&lt;html&gt;cache.manifest 是您将用于定义缓存内容的文件的名称。它可以命名任何东西,但我实际上称我为cache.manifest

    <html lang="en" manifest="cache.manifest">
    

    然后确保您的网络服务器将.manifest 的 MIME 类型设置为:

    文本/缓存清单

    然后创建一个名为cache.manifest 的文件,将其放在您的应用根目录中。在CACHE 部分下,放置您要缓存的文件(在您的情况下是所有文件)。您也可以使用* 来表示“所有文件”。

    每次推送版本时,更改缓存清单中的版本号。文件中的任何更改都将起作用,但版本号是一个完美的机制。

    CACHE MANIFEST
    #ver 1.0.0
    
    CACHE:
    app.html
    app.css
    app.js
    

    然后将其放在您的 onload 或同等文件中的脚本顶部。

    function updateVersion( event ) {
    
        window.applicationCache.removeEventListener( 'updateready', updateVersion, false );
    
        if ( window.applicationCache.status == window.applicationCache.UPDATEREADY ) {
            //perhaps notify user here
            window.applicationCache.swapCache();
            window.location.reload();
        };
    
    };
    
    if ( window.applicationCache ) { 
        window.applicationCache.addEventListener( 'updateready', updateVersion, false ); 
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-29
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多