【问题标题】:Is PhoneGap on iOS hard coded to load www/index.html?iOS 上的 PhoneGap 是否经过硬编码以加载 www/index.html?
【发布时间】:2011-11-09 10:42:46
【问题描述】:

在 Android 上的 PhoneGap 上,您可以修改 App.java 类以加载任何 url。我找不到任何地方可以更改 iOS 版本的入口点。

在测试时,我更喜欢使用一些具有不同设置的“www”目录。目前我需要重命名目录,这有点麻烦。

【问题讨论】:

    标签: ios cordova


    【解决方案1】:

    从 PhoneGap 2.2 开始,您现在可以覆盖 config.xml 中的 <content> 标签:

    <content src="http://www.example.com" />
    

    【讨论】:

    • 难道我们不能在默认的 www/config.xml 文件中设置它吗?更改不会延续到每个平台的 config.xml 文件。
    【解决方案2】:

    PhoneGapDelegate.h 定义了一个类方法 startPage,您可以在 iOS 应用的 AppDelegate.m 文件中重载/重新定义该方法。

    + (NSString*) startPage;
    

    例如:

    + (NSString*) startPage{ 
        return @"http://m.google.com";
    }
    

    将重新定义 PhoneGap 中的起始页。您必须将 google.com 添加到 PhoneGap.plist 中的 ExternalHosts。从 PhoneGap 1.2 开始,如果您这样做并在您的本机应用程序中包含插件,远程托管 PhoneGap 应用程序及其相关的 *.js 将能够执行插件操作。我已经用 BarcodeScanner、ChildBrowser 和 ApplicationPreferences 对此进行了测试。

    更新

    从 1.4.0 和 1.4.0 开始,startPage 和 wwwFolderName 是属性而不是方法。它们仍然是可重新定义的,但是您不能再让 startPage 指向远程(非本地)phonegap 安装,就像我上面的示例一样。 (这有点无赖)

    【讨论】:

    • 是的,真可惜,我还读到如果代码是远程托管的,苹果会拒绝您的应用程序,对吗?除了让远程工作而苹果不拒绝之外,还有其他选择吗?
    • 据我了解,情况已不再如此,他们提到的代码是本机代码,而不是在 UIWebView 中运行的 javascript 代码。有很多例子可以做到这一点。
    【解决方案3】:

    你可以这样做:

    创建默认的 index.html 并将其包装并加载您自己的 html 根文件,这样您就可以保留自己的目录结构而无需在此处进行任何修改。

    当然,phonegap 是开源的,所以你也可以提交对 phonegap 的更改,以更改类似于 Android API 的 iOS api。目前似乎根 html 文件路径是在类 PhoneGapDelegate.m 中确定的

    【讨论】:

    • 啊.. 我现在在 PhoneGapDelegate.m 中看到了。好的,这回答了我的问题。这也是一个很好的解决方法。最高分。谢谢汉内斯。
    • 对于其他人.. 该文件的链接是here
    • 那个链接现在是here
    【解决方案4】:

    你可以的

    class/AppDelegate.m

    在 AppDelegate.m 中将 self.viewController.startPage 更改为你的起始页

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多