2011-12-18 8 views
6

アップルは「Launching the App Store from an iPhone application」でアプリストアへのアフィリエイトリンクを作成し、バックグラウンドでリダイレクトを処理してユーザーを迷惑にならないようにする方法について説明しました。しかし、リダイレクトを全く持たない方が良いでしょう。私はそれを行う方法を見て覚えているようだが、今どこでもそれを見つけることができない。リダイレクトなしでiTunes Storeへのアフィリエイトリンクを作成しますか?

リダイレクトなしでiOSアプリからアプリストアへのアフィリエイトリンクを作成することはできますか?

編集:明確にするために、私はLinkshareアフィリエイトリンクについて話しています。

編集2:近づいています。私はこのリンクを持っています。リンクシェアの「テキストリンク」ページを一本手にしました。以下のk1thのトリックを使用すると、iPad上でリダイレクトされずに動作しますが、まだiPod touch [おそらくiPhone]にリダイレクトが1つあります。私はリダイレクトがトップiPadアプリからトップiPhoneアプリに切り替えるかもしれないと推測しているが、私はそのことを確実には知らない。

http://click.linksynergy.com/fs-bin/click?id=sf2bW7QX/qU&offerid=146261.10005745&type=3&subid=0

答えて

3

-deallocに私はあなたがリダイレクトをしたくない理由は

  • にあるそれを取るApp Storeのアプリ自体

  • 回避のリダイレクトをポップアップからSafariブラウザを避けます私はk1thのソリューションを好むだろうが、失敗している(上記の#2で失敗する可能性があると思われる)、最初のitmsリンクは「最終」ではないという問題があると想定します。一つの解決策は、単にハードコードになりますURL(またはいくつかの他の手段でそれを提供):

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
        NSURL myAppUrl = .... 
        if ([request.URL.scheme isEqualToString:@"itms"] && 
         [[UIApplication sharedApplication] canOpenURL:myAppURL]) { 
         [[UIApplication sharedApplication] openURL:myAppURL]; 
         return NO; 
        } 
    
        return YES; // go on redirecting 
    } 
    

    クリーナーソリューションは、ITMSはrequest.URLにリンクするアプリのIDを読み取ると、新しいURLをフォーマットするだろうあなたのアプリに直接つながるパターンを使用します。

  • 0

    私はthis documentを発見し、私はそれが私の答えを与えていると思います。私はいつも苦労これらの事を解読を持っていますが、私はそれは私が何をすべきか、基本的なリンクで始まりであると述べていると思う:

    http://itunes.apple.com 
    

    が、私はあると思う30のPARTNERID、プラス私のリンクシェアのアフィリエイトトークンを追加します以下で終了する

    sf2bW7QX/qU 
    

    http://itunes.apple.com?partnerId=30&id=sf2bW7QX/qU 
    

    私は基本的にidパラメータFをつかむために言っている、アップルのドキュメントの指示に従うことによって、私のIDと思われるものですランダムなリンクシェアリンク。私がこの目的のために使用したリンクは次のとおりです。

    <a href="http://click.linksynergy.com/fs-bin/click?id=sf2bW7QX/qU&offerid=146261.431296703&type=2&subid=0"><IMG border=0 src="http://a464.phobos.apple.com/us/r30/Music/b9/7f/91/mzi.kbjyfypr.170x170-75.jpg" ></a><IMG border=0 width=1 height=1 src="http://ad.linksynergy.com/fs-bin/show?id=sf2bW7QX/qU&bids=146261.431296703&type=2&subid=0" > 
    

    私はまだ全般的にはっきりしていません。私のlinkshareアフィリエイトトークンに本当にスラッシュが入っていますか?

    4

    はい、あなたはそれがスラッシュは、URLのパラメータ部分を開始疑問符の後だからです(のparamsにスラッシュを有していてもよく、モバイルSafariはアフィリエイトリンクの処理にスキップについて

    :。

    あなたはどちらか自分でリダイレクトを処理するか、URLローディングシステム内のすべてのことを行うために隠されたのUIWebViewを設定することができ これは隠しWebViewのである:。

    NSURLRequest *r = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://click.linksynergy.com/fs-bin/click?id=sf2bW7QX/qU&offerid=146261.431296703&type=2&subid=0"]]; 
    
    testWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)]; 
    testWebView.hidden = YES; 
    testWebView.delegate = self; 
    [testWebView loadRequest:r]; 
    

    デリゲート:

    #pragma mark - UIWebViewDelegate 
    
    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    
        if ([request.URL.scheme isEqualToString:@"itms"] && 
         [[UIApplication sharedApplication] canOpenURL:request.URL]) { 
         [[UIApplication sharedApplication] openURL:request.URL]; 
         return NO; 
        } 
    
        return YES; // go on redirecting 
    } 
    

    testWebViewインスタンスVARする必要があり、ビューコントローラ自体は<UIWebViewDelegate>する必要があります。また、webviewデリゲートをnilに設定する必要があります(例:

    3

    あり、アップルから直接、非常にクリーンソリューションはここにある:https://developer.apple.com/library/ios/#qa/qa1629/_index.html

    そして簡潔にするため、ここではそのページからコードがある:

    // Process a LinkShare/TradeDoubler/DGM URL to something iPhone can handle 
    - (void)openReferralURL:(NSURL *)referralURL { 
        NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:referralURL] delegate:self startImmediately:YES]; 
        [conn release]; 
    } 
    
    // Save the most recent URL in case multiple redirects occur 
    // "iTunesURL" is an NSURL property in your class declaration 
    - (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response { 
        self.iTunesURL = [response URL]; 
        return request; 
    } 
    
    // No more redirects; use the last URL saved 
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
        [[UIApplication sharedApplication] openURL:self.iTunesURL]; 
    } 
    
    +0

    リダイレクトが隠されているため、改善されています。しかしそれはまだそこに残っており、結果的に待機時間は短縮されますが、削除されることはありません。 –

    関連する問題