2011-12-07 4 views
3

itms-serviceリンクの.plistファイルへの直接リンク以外のリンクを使用したいと思いますが、iOSはそれを呼び出さないようです。アプリ配信用のitms-serviceリンク内のリンクを使用

<a href="itms-services://?action=download-manifest& 
url=http://example.com/app.plist">Install App</a> 

これは動作しますが、私はの.plistを出力するスクリプトを呼び出そうと、私は、要求がWebサーバに入ってくる表示されません。

<a href="itms-services://?action=download-manifest& 
url=http://example.com/
checksomething?param=test">Install App</a> 

なぜ誰が知っていますか?

iOSはリンクに.plistが含まれているかどうかをチェックし、リンクが存在しない場合は呼び出しません。


OK、私は、iOSにURLを渡すと、失敗したことを今知っている:

if ([[UIApplication sharedApplication]canOpenURL:url]) { 
    [[UIApplication sharedApplication]openURL:url]; 
    return NO; 
} 

を多分NSURLオブジェクトは、別のパラメータを必要とします。

答えて

9

疑問符は予約文字です。 %3Fとしてエンコードする必要があります。等号の場合も同じです - それは%3Dでなければなりません。

+0

私は '&'(複数のパラメータを使用している場合)も '%1B'と考えています。 – dcow

0

あなたがPHP 5を使用している場合は、でurlencode()& http_build_queryは()あなたのための特殊文字をエスケープのハードワークの多くを行うことができます。これらの関数は、GETパラメータの名前と値のペアの中に機密性の高い文字が含まれていて安全に送信する必要がある問題を回避します。

<?php 
    $base_url = "http://example.com/checksomething"; 
    $data = Array("param" => "test", "dangerous" => ":?&= are some sensitive chars"); 
    $itms_url = "itms-services://?action=download-manifest&url=" . urlencode($base_url . "?" . http_build_query($data)); 
?> 

<a href="<?=$itms_url;?>">Install App</a> 
関連する問題