1

UIWebview があり、特定の Web サイト セクション (ニュース) を読み込んでいます。そして、ユーザーがサイトの他の部分にアクセスするのをブロックしたいのです。つまり、ユーザーはニュースセクションにとどまり、pdf の記事を読んでいる必要があります。

コードのセットを作成しましたが、技術的な制約により、残念ながらまだテストできません。アクセスできるのは来週だけです。ただし、ここで質問して、上級ユーザーに私のドラフト コードを表示して、実行可能かどうかを確認してもらうのは良い時期だと思いました。

- (void)viewDidLoad
{   
    [super viewDidLoad];

    NSString *urlAddress = @"http://www.imc.jhmi.edu/news.html";
    NSURL *url =[NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];

    //finding current url and lead it back if it strayed off
    NSString *currentURL = webView.request.URL.absoluteString;
    NSRange range1 = [currentURL rangeOfString:@"news"];
    NSRange range2 = [currentURL rangeOfString:@"pdf"];

使うべきか

    if (range1.location ==NSNotFound){
    currentURL = @"http://www.imc.jhmi.edu/news.html";
    [webView reload];
    }else if (range2.location ==NSNotFound){
    currentURL = @"http://www.imc.jhmi.edu/news.html";
    [webView reload];
    }

}

それともこの一連のコードですか?

    if (range1.location ==NSNotFound){
    currentURL = @"http://www.imc.jhmi.edu/news.html";
    url = [NSURL URLWithString:currentURL
    [webView loadRequest:[NSURLRequest requestWithURL:url]];
    }else if (range2.location ==NSNotFound){
    currentURL = @"http://www.imc.jhmi.edu/news.html";
    url = [NSURL URLWithString:currentURL
    [webView loadRequest:[NSURLRequest requestWithURL:url]];
    }

また、コードに問題はありますか? はいの場合、私はまだ学習段階にあるため、機能しない理由を指摘してください。この段階でより多くを学ぶ絶好の機会となるでしょう。私が探しているロジックは、最初のニュース セクションを読み込むことです。UIWebView は、そこからニュース セクション/PDF 記事のみを表示する必要があります。ユーザーが他のパスに移動しようとすると、現在の URL が検出され、ニュース セクションにリダイレクトされます。

4

1 に答える 1

4

特定の URL の負荷を制限するには、次のようにします。

webView.delegate = self;

そして、次の関数を追加します

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
     NSString *urlString = [[request URL]absoluteString];
     if(ulrString == @"restricted ur")
          return NO;   //Restrict
     else
          return YES;  //Allow
}
于 2012-06-07T11:03:15.417 に答える