在浏览了许多 Stack Overflow 帖子后,我无法找到解决问题的方法。如果我问的问题已经在别处得到解答,请朝正确的方向点头。
如果我可能使用了错误的术语,请不要对我太苛刻,因为我对移动开发还是个新手。
问题:我要做的就是单击本地网页中的链接,该链接会在 UIWebView 中被拉出。目前,当我单击链接时,除了当前页面的短暂闪烁之外,什么也没有发生。
这就是我所在的位置:
1)当应用程序加载时,我显示一个显示“本地”网页的网页视图(这是我的 xcode 项目的一部分)。到现在为止还挺好。
2)当最终用户点击一个项目(在我的例子中是地理区域,由一个标志表示)时,额外的内容变得可见,包括几个链接,导致“外部”网络应用程序,如维基百科和地图网站。
3)我的大部分小网络应用程序都在我加载应用程序时显示的网页中。我使用 JavaScript、HTML 和 CSS 来提供大部分功能(因为我已经有一个网站可以完全完成它应该做的事情)。
4) 但是,能够从我的起始页链接到其他网站是至关重要的。
(如果您认为这是糟糕的设计,我会接受。总是欢迎提出更好的方法的建议;但是,我确实需要先解决我当前的问题,然后才能重组我的代码。请多多包涵。)
这是打开初始网页的代码:
// View Controller.h
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIWebView *spfWebView;
@end
// ViewController.m
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize spfWebView;
- (void)viewDidLoad{
[super viewDidLoad];
//Web Site within XCode Project:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"www/index" ofType:@"html"] isDirectory:NO];
//NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ( [data length] > 0 && error == nil ){
[spfWebView loadRequest:request];
}else if (error != nil){
NSLog(@"Error: %@", error);
}
}];
}
- (void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
因此,在我的网页中,我使用标准的普通 a href 链接指向维基百科,例如,像这样(我必须在 href 部分使用空格以避免 SO 将其解释为链接,因为我只想显示链接的代码):
<a href ="http://en.wikipedia.org/wiki/Schaffhausen">Wikipedia</a>
而且,正如我所提到的,当我单击或点击链接时,页面就在那里。该页面似乎短暂地重新加载并在屏幕上闪烁,但这就是我所看到的。
有什么想法吗?