質問

現在、別のビューからuiwebviewをロードする次のコードがあります。とにかく私は近いボタンを持っていることができますか?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UIWebView *webView=[[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,480)];
    [self.view addSubview:webView];
    NSURLRequest *urlRequest;
    NSURL *urlforWebView;
    urlforWebView=[NSURL URLWithString:@"http://www.google.com"];
    urlRequest=[NSURLRequest requestWithURL:urlforWebView];
    [webView loadRequest:urlRequest];

}

jqueryモバイルを使用して構築されたページを読み込むため、ページ内の閉鎖ボタンも正常に動作します。しかし、ナビゲーションバーでは理想的です。ところで、私のアプリケーションはそうです いいえ uinavigationbarを持っています

役に立ちましたか?

解決

新しいサブクラスを作成します UIViewController, 、 いう WebViewController ペン先で。それから私は追加します UINavigationBar ボタンを閉じると UIWebView. 。次に、Webビューコントローラーを表示するには、次のようなことができます。

WebViewController *webViewController = [[WebViewController alloc] init];
webViewController.loadURL = [NSURL URLWithString:@"http://www.google.com"];
[self presentModalViewController:webViewController animated:YES];
[webViewController release];

あなたの中で WebViewController あなたは定義することができます:

@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) NSURL *loadURL;

- (IBAction)close:(id)sender;

そして、このようなものを実装してください:

- (void)viewDidLoad {
  [super viewDidLoad]

  NSURLRequest *urlRequest = [NSURLRequest requestWithURL:self.loadURL];
  [self.webView loadRequest:urlRequest];
}

- (IBAction)close:(id)sender {
  [self dismissModalViewControllerAnimated:YES];
}

他のヒント

UIWebViewをロードするたびに、最初にコンテンツでJavaScriptスニペットを実行できます。

[webView stringByEvaluatingJavaScriptFromString:@"window.close = function() { window.location = 'app://close-webview'; };"];

それは、通常の動作をハイジャックするだけです window.close() そして、あなたの目標cで電話をかける機会を与えます。

次に、uiwebviewdelegateで、クローズURLとして選択したものを聞くことができます。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if([request.URL.absoluteString isEqualToString:@"app://close-webview"]) {
        webView.hidden = YES;
        // or whatever you want to do to remove the UIWebView...
        return NO;
    }
    return YES;
}

少しハッキッシュですが、Web開発者はHTMLコンテンツ内からの近いボタンのルックアンドフィールを制御できるようになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top