iOS 上的 PhoneGap 是不是经过硬编码以加载 www/index.html?
Posted
技术标签:
【中文标题】iOS 上的 PhoneGap 是不是经过硬编码以加载 www/index.html?【英文标题】: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”目录。目前我需要重命名目录,这有点麻烦。
【问题讨论】:
【参考方案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 更改为你的起始页
【讨论】:
以上是关于iOS 上的 PhoneGap 是不是经过硬编码以加载 www/index.html?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Phonegap 应用程序设置图标以显示在 Spotlight 上?
Phonegap + jQueryMobile + iOS 上的 PushNotifications
使用 PhoneGap 将音频录制到 iOS 上的文档文件夹
使用Phonegap的IOS上的Jquery ajax请求-Ajax不起作用