1

1 つの webview と 3 つの URL があります。

したがって、アプリケーションが起動すると、webview に URL1 が表示されます。

webview の任意の部分を選択すると、URL2 にリダイレクトされます。

しかし、URL2 からいくつかのデータを取得したいだけで、それをユーザーに表示したくありません。

shouldStartLoadWithRequest: メソッドを使用して NO を返すことでできること。

しかし今、Webview で URL2 から受信したデータを含む URL 3 を表示する必要があります。

しかし、何も表示されません。どうすればよいですか?

このために、次のコードを使用しています

-(void)viewDidLoad
{
//Normal showing of URL1 in webview

}

- (BOOL)webView:(UIWebView*)webViewRef shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
{
if(selectedDataExist){

//get data from URL2
//Make New URL3 string
[webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:myNewUrlString]]];
return NO;
}
else
{
//by default URL1 comes 
return YES;
}
4

2 に答える 2

1

これは私がしました:

GET メソッドを介して情報を送信しようとしていたので、要求された URL の最後の 10 文字 (私の場合) をサブストリング化し、GET メソッドがない場合は、GET メソッドを URL に追加する新しい要求を作成し、 NO を返します。次にこの関数が呼び出されると、GET メソッドが含まれるため、続行されます。

 -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

NSString *urls = [request.URL absoluteString];
NSString *code = [urls substringFromIndex: [urls length] - 10];

if (![code isEqualToString:@"?iphone=si"]) {
    NSURL *nueva = [NSURL URLWithString:[NSString stringWithFormat:@"%@?iphone=si",urls]];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:nueva];
    [self.mywebview loadRequest:requestObj];
    return NO;
}
return YES;
}
于 2013-12-10T01:58:39.140 に答える
-1

これが私のやり方です

                NSURL *LocalUrl = [[NSURL alloc] initWithString:[newUrl stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding]];

                NSURLRequest *objNSURLRequest;

                objNSURLRequest = [NSURLRequest requestWithURL:LocalUrl];

                [yourwebview loadRequest:ObjNSURLRequest];

                [LocalUrl release];

                return NO;
于 2012-08-24T07:01:04.307 に答える