1

私はしばらくの間、アプリでLinkshareリンクを使用しています。正常に動作します。私は、リダイレクトを吸収して最後のURLを呼び出すというAppleの提案を実装しました。

それを探している人のために、ここにあります。

これを呼び出すメソッドにリンクされたUIButtonがあります。

[self openReferralURL:[NSURL URLWithString:link]];

ここで、linkは次の値を持つNSStringです(私のLinkshareリンク)

@ "http://click.linksynergy.com/fs-bin/stat?id=Jexmk6JU*OU&offerid=146261&type=3&subid=0&tmpid=1826&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa% 252Fwa%252FviewSoftware%253Fid%253D353970672%2526partnerId%253D30 "

これは正常に機能します。ボタンをタップすると、最初にSafariを開かなくてもすぐにAppStoreアプリが起動します。

しかし、以下のGeoRiotリンクにリンクを変更すると、最初にSafariが開き、次にAppStoreのみが開きます。それがなぜそうなのか、私には考えられません。

@ "http://target.georiot.com/Proxy.ashx?grid=5700&id=Jexmk6JU*OU&offerid=146261&type=3&subid=0&tmpid=1826&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa% 252Fwa%252FviewSoftware%253Fid%253D353970672%2526partnerId%253D30 "

誰でも助けることができますか?私と比較するためにジオターゲットリンクを共有できますか?とにかく、Geotargetリンクを含むWebページを開くUIWebviewが1つあり、正常に機能します(つまり、App Storeアプリを直接開きます)。

私は今考えがわからない。問題はGeoRiotリンクにあると思いますが、Linkshareリンクを使用すると正常に機能するため、なぜ、または何をすべきかわかりません。

4

2 に答える 2

1

私は最近、質問をしたり答えたりしていますが、アンドレアの場合は、次のようになります。

georiotリンクを使用している方は、Appleサンプルコードの代わりにこれらのメソッド/関数が適切に機能します。

// Process a URL to something iPhone can handle
- (void)openReferralURL:(NSURL *)referralURL
{
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:referralURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];
    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    [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
{


    if (response) {
        NSMutableURLRequest *r = [[request mutableCopy] autorelease]; // original request
        [r setURL: [request URL]];


        self.iTunesURL = [r URL];

        if ([self.iTunesURL.host hasSuffix:@"itunes.apple.com"]) {

            [[UIApplication sharedApplication] openURL:self.iTunesURL];

        }


        return r;
    } else {
        return request;
    }

}

使用するには、次の電話番号に電話してください。

[self openReferralURL:[NSURL URLWithString:@"http://target.georiot.com/Proxy.ashx?grid=5700&id=Jexmk6JU*OU&offerid=146261&type=3&subid=0&tmpid=1826&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fiquiksplash-pro-all-in-one%252Fid378458261%253FpartnerId%253D30"]];

おそらく、URL短縮ツールを使用して長いURLの混乱をクリーンアップする必要がありますが、どちらの方法でも問題なく機能します。

于 2012-06-09T02:48:00.407 に答える