0

アプリで特定のサイトを Web ビューで開かないようにしたい。したがって、そのような方法で任意の Web サイトを制限できます。特定のページではなく、Web サイトを完全に制限したいということをもう 1 つ追加したいと思います。前もって感謝します。

4

2 に答える 2

1

はい、この UIWebview デリゲート メソッドでページの読み込みをブロックできます。クラスを webviews デリゲートとして設定することを忘れないでください。webView.delegate = self;であり、クラスはUIViewController <UIWebViewDelegate>

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if ([request.URL.absoluteString rangeOfString:@"google"].length != 0) {
        // maybe show a UIAlertView to indicate the page is blocked?
        return NO;  
    }else {
        return YES;
    }
}

編集: URL に Google が含まれているかどうかを確認し、Google が含まれている場合はブロックするようになりました

于 2012-10-23T08:12:10.370 に答える
0

少し改善: ブロックしたい Web サイトを NSArray に保存します。

NSArray *restrictedSites = [NSArray arrayWithObjects:@"http://www.google.com", @"http://www.google.co.uk", nil];

要求された Web サイトが制限された Web サイトの 1 つであるかどうかを確認します。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *site = request.URL.absoluteString

    for(NSString *str in restrictedSites)
    {
        if ([site isEqualToString:str]) 
        {
            return NO;
        }
    }
    return YES;
}

または、要求された Web サイトに URL が含まれているかどうかを確認することもできます。次の場合、「http://www.google」または「http://www.apple」を含むすべての URL がブロックされます。

最初に制限付きサイト アレイを作成します。

NSArray *restrictedSites = [NSArray arrayWithObjects:@"http://www.google", @"http://www.apple", nil]; 

要求された Web サイトに、制限された Web サイト (.com や .co.uk などを除く) のいずれかが含まれているかどうかを確認します。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *site = request.URL.absoluteString

    for(NSString *str in restrictedSites)
    {
        if ([site rangeOfString:str].location != NSNotFound) 
        {
            return NO;
        }
    }
    return YES;
}

ここでは、すべてのhttp://www.google.comhttp://www.google.frhttp://www.google.co.ukがブロックされます。

于 2012-10-23T08:56:51.603 に答える