Drupal has a function called
filter_xss_bad_protocol that strips unknown protocols from links created with the
l() function - This is a very smart idea but makes it difficult when you want to include emerging link protocols like
skype:// for example. Dave Reid has created a fantastic module that works around this and allows developers to add their own protocols to the list.
With that module installed, and your specific protocol added to its configuration screen, it would then be possible to do something like this in your code:
<?php print l("Displayed Text", "itms-services://?action=download-manifest"?>
Additionally, use the
query parameters of the
l() function to pass your url parameter to the link. See this for an example... http://api.drupal.org/api/drupal/includes%21common.inc/function/l/7 - You'll find the particular comment regarding passing parameters on that page here: http://api.drupal.org/comment/38198#comment-38198
Hope that helps! Good luck.
P.S. To clarify, simply adding the above module and configuring it will also allow the Link module to respect the protocol since it passes everything through
l() - So no code required. :) Merely for completeness.