1

UIWebViewApp Store へのリンク (リンクの種類) を含む HTML ページを読み込む があります<a herf="http://itunes/bla/bla/bla">

リンクをクリックすると、外部の Safari が開き、次に外部の App Store アプリが開き、正しいページに正常に移動します。

次にホームボタンをクリックしてスプリングボードに戻り、アプリをもう一度クリックすると、UIWebView表示されていたが一時的に開き、外部の Safari と外部の App Store アプリに再びジャンプします。

もう一度アプリに戻ると、アプリに残ります。

そのため、HTML ページから外部ブラウザ リンクを開いた後にアプリにUIWebView戻ると、同じリンクにもう一度ジャンプすることになります。

これを引き起こしている可能性のあるアイデアはありますか?

Xcode 4.2.1 を使用していますが、シミュレーターと実際のデバイス (iOS 4.3 を搭載した iPad 1) で発生します。

編集 - 解決策:

わかりました、問題を解決するために私がしなければならなかったことは次のとおりです(適切な領域を調べさせてくれた以下のベンの回答に感謝します):

これは私の元の方法でした:

- (BOOL)webView:(UIWebView *)_webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (didLoad) { //Do not jump to URL when view first loads
        return YES;
    }

    [[UIApplication sharedApplication] openURL:[request URL]];
    return YES;
}

そして、これはURLにジャンプし続けない私の固定方法です:

- (BOOL)webView:(UIWebView *)_webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (didShowURL) { //Do not jump to URL when returning to app
        didShowURL = 0;
        return NO;
    }

    if (didLoad) { //Do not jump to URL when view first loads
       return YES;
    }

    didShowURL = 1;
    [[UIApplication sharedApplication] openURL:[request URL]];
    return YES;
}
4

2 に答える 2

2

itms-apps://リンクにプロトコルを使用することをお勧めします。これにより、リダイレクトを必要とせずに、ユーザーが App Store のアプリケーションに直接送信されます。

NSURL *appStoreLink = [NSURL URLWithString:@"itms-apps://itunes.apple.com/us/app/instagram/id389801252?mt=8"];
[[UIApplication sharedApplication] openURL:appStoreLink];
于 2012-05-16T02:29:40.660 に答える
0

Webview が最後のページ (アプリ ストア ページ) にリロードされ、ユーザーを自動的にリダイレクトしています。アプリがリロードされたときに、アプリ ストアのリンクを再度読み込もうとしていないことを確認する必要があります。

アプリの設定に応じて、使用できます

viewWillAppear

ビューが前面に表示されるたびに、リンクを含む元の HTML ページをリロードします。

于 2012-05-15T22:59:12.047 に答える