2

好的,伙计们,所以我是 iOS 编程的新手。

我正在尝试构建一个非常简单的 WebView iOS 应用程序来加载外部 URL 以及与之关联的所有 Javascript(@external 服务器)。

下面的代码完美地加载了页面,但是当我点击“登录”按钮时,它调用的 Javascript 似乎没有做任何事情。

- (void)loadView
{
    self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    UIWebView *webView =[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
    webView.scalesPageToFit = YES;
    [[self view] addSubview:webView];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://mywebsitehere.com/mob/"
                                                       ]]];
}

这是外部 HTML 文件中登录按钮的代码:

<a id="btnLogin" data-role="button" data-icon="star" href="javascript:__doPostBack(&#39;btnLogin&#39;,&#39;&#39;)"><span>Login</span></a>

我也尝试过使用不同的 PhoneGap/Cordova/ChildBrowser 教程,但一切似乎都非常过时/不起作用。

如果可能,我还需要 GeoLocation(网页请求某些功能的当前位置)。我基本上只需要它像在 Safari 中一样工作。

请帮忙!

4

2 回答 2

0

默认情况下,Xcode 会将任何 javascript 资源文件添加到项目的Compile Sources中。它们应该从这里移除并放置在项目的Copy Bundle Resources中。当您选择项目时,您可以在 Target的Build Phases选项卡中找到这些。每次我的 JS 没有响应时,这就是原因。

于 2012-11-15T11:06:06.033 回答
0

经过大量研究,我发现 UIWebView 的 User-Agent 没有被 ASP.NET 正确识别。这会导致 ASP.NET 应用程序出现身份验证问题。

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"User Agent Here", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];  

更改用户代理后,身份验证过程成功运行。

于 2013-02-01T03:03:02.640 回答