多数のスタック オーバーフローの投稿を調べた後、問題の解決策を見つけることができませんでした。他の場所で既に回答されている質問をしている場合は、正しい方向にうなずいてください.
また、私はまだモバイル開発に慣れていないので、間違った用語を使用している可能性がある場合でも、あまり厳しくしないでください。
問題:私がやろうとしているのは、UIWebView に表示されるローカル Web ページのリンクをクリックすることだけです。現在、リンクをクリックしても、現在のページが一瞬表示される以外は何も起こりません。
これは私がいるところです:
1) アプリケーションが読み込まれると、「ローカル」Web ページ (私の xcode プロジェクトの一部) を表示する Web ビューを表示します。ここまでは順調ですね。
2) エンド ユーザーが項目 (私の場合はフラグで表される地理的領域) をクリックすると、ウィキペディアや地図 Web サイトなどの「外部」Web ページにつながる、いくつかのリンクを含む追加のコンテンツが表示されます。
3) 私の小さな Web アプリのほとんどは、アプリケーションが読み込まれたときに表示される Web ページにあります。ほとんどの機能を提供するために JavaScript、HTML、および CSS を使用しています (本来の機能を正確に実行する Web サイトを既に持っているため)。
4) ただし、スタート ページから他の Web サイトにリンクできることは非常に重要です。
(これが悪い設計だと思われる場合は、それを受け入れます。より良いアプローチの提案はいつでも歓迎します。ただし、コードを再構築する前に現在の問題を解決する必要があります。ご容赦ください。)
最初の Web ページを表示するコードは次のとおりです。
// 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
したがって、私のWebページでは、標準の通常のa hrefリンクを使用して、たとえばウィキペディアを指すようにしています(SOがリンクとして解釈しないように、href部分にスペースを使用する必要がありました。リンクのコードを表示します):
<a href ="http://en.wikipedia.org/wiki/Schaffhausen">Wikipedia</a>
そして、前述したように、リンクをクリックまたはタップすると、ページはそこにとどまります。ページが一瞬リロードされて画面が点滅するように見えますが、それだけです。
アイデアはありますか?