好的,所以我是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('btnLogin','')"><span>Login</span></a>
我也尝试过使用不同的PhoneGap / Cordova / ChildBrowser教程,一切看起来都已过时/无效。
如果可能,我还需要GeoLocation(网页请求某些功能的当前位置)。 我基本上只需要它就像在Safari中一样工作。
请帮助!
答案 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];
更改用户代理后,身份验证过程成功运行。