在iOS中使用Javascript构建简单的WebView APP

时间:2012-11-15 09:52:40

标签: javascript iphone ios uiwebview ios6

好的,所以我是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中一样工作。

请帮助!

2 个答案:

答案 0 :(得分:0)

默认情况下,Xcode会将任何javascript资源文件添加到项目的编译源中。应将其从中删除,并将其放置在项目的复制包资源中。选择项目时,可以在Target的构建阶段选项卡中找到这些内容。每当我让我的JS没有回应时,这就是原因。

答案 1 :(得分:0)

经过广泛研究后,我发现ASP.NET无法正确识别UIWebView的用户代理。这会导致ASP.NET应用程序出现身份验证问题。

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

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