5

是否可以加载外部 index.html(包含cordova.js)而不是本地的?

我在 appdelegate.m 中找到了这段代码:

self.viewController.wwwFolderName = @"www";
self.viewController.startPage = @"index.html";

我试图引用一个外部网址,但没有运气......有人知道这个解决方案吗?

ps

使用 android 很简单:

super.loadUrl("http://192.168.1.135:3000/");
4

6 回答 6

4

我已经为我的项目(AppDelegate.m)做了这个:

self.viewController = [[[MainViewController alloc] init] autorelease];
self.viewController.useSplashScreen = YES; // YES;
self.viewController.wwwFolderName = @""; // @"www";
self.viewController.startPage = @""; // @"index.html";
self.viewController.invokeString = invokeString;
self.viewController.view.frame = viewBounds;

// Load request with new root URL
NSURL *urlOverwrite = [NSURL URLWithString:@"http://kyryll.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:urlOverwrite];

[self.viewController.webView loadRequest:request];

如其他地方所述,您尝试访问的站点必须被列入白名单。

它运作良好。我的外部站点在本地 IIS 上,并且有 cordova.js 以及一些插件。现在只需要看看我是否让 Apple 批准我的应用程序!

于 2012-09-19T23:25:44.357 回答
2

如果您将 PhoneGap 源作为子项目包含(我使用 1.7 并且指示仍然有效,请参阅最后的注释),您可以添加几行代码以允许 PhoneGap 支持外部 URL 作为startPage.

在第 133 行附近,您需要添加

if([self.startPage hasPrefix:@"http"]) {
    appURL = [NSURL URLWithString:self.startPage];
}
else 

就在之前if (startFilePath == nil) {

默认情况下,PhoneGap 似乎不支持没有上述 javascript 'hack' 的外部 startPage URL。除了这个(和那个),我不知道还有什么办法!

如果您有更多问题,请告诉我。

注意:正如我上面提到的,演练缺少一步。我对文章发表评论让作者知道,但尚未获得批准。以下是我的评论:

我缺少的一个步骤是将 $(CORDOVALIB)/Classes 添加到构建阶段下的标题搜索路径(也将其标记为递归搜索)。除此之外,写得真好!

于 2012-06-05T20:47:05.207 回答
2

对于 iOS,它将是:

self.viewController.wwwFolderName = @""; // @"www"
self.viewController.startPage = @"http://192.168.2.107:9000/";

名称令人困惑,因为 startPage 也是 URL。

于 2012-12-29T09:21:46.463 回答
1

我做的最简单的方法是,在 index.html 文件中包含以下脚本块,如果不需要,请删除其他代码:

<script type="text/javascript">
     window.location.href="http://192.168.1.135:3000/";
</script>

ExternalHosts并在文件中包含地图中的主机PhoneGap.plist,还检查OpenAllWhitelistURLsInWebView设置为YES在plist文件中

于 2012-04-23T08:55:11.393 回答
0

将 wwwFolderName 设置为空字符串对我不起作用,但 nil 起作用。

self.viewController.wwwFolderName = nil;
self.viewController.startPage = @"http://192.168.2.107:9000/";
于 2013-07-25T07:49:50.897 回答
0

我做的最简单的方法是, xxxViewController: CDVViewController<...>

-(void) viewDidLoad{
    self.wwwFolderName = @"dist";
    self.startPage = @"test.html";
    [super viewDidLoad];
}

所以,就是这样。

于 2015-07-16T07:41:36.110 回答