Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198
NSURL: Difference between revisions - iPhone Development Wiki

NSURL: Difference between revisions

From iPhone Development Wiki
No edit summary
No edit summary
Line 25: Line 25:
| calinvite || <tt>calinvite:eventid=</tt>''id'' || {{applink|MobileCal}} || {{no}} || Used in <tt>-[</tt><tt>[[SBInvitationAlertItem]] revealEvent]</tt>.
| calinvite || <tt>calinvite:eventid=</tt>''id'' || {{applink|MobileCal}} || {{no}} || Used in <tt>-[</tt><tt>[[SBInvitationAlertItem]] revealEvent]</tt>.
|-
|-
| calinvitelist || ? || {{applink|MobileCal}} || {{unk}} || ?
| calinvitelist || ? || {{applink|MobileCal}} || {{no}} || ?
|-
|-
| mailto || [http://www.ianr.unl.edu/internet/mailto.html] || {{applink|MobileMail}} || {{yes}} || Sending emails.
| mailto || [http://www.ianr.unl.edu/internet/mailto.html] || {{applink|MobileMail}} || {{yes}} || Sending emails.
Line 35: Line 35:
| telprompt || <tt>telprompt:</tt>''phoneNumber'' || {{applink|MobilePhone}} || {{yes}} || Telephone with prompt. Available only in 3.0 –.
| telprompt || <tt>telprompt:</tt>''phoneNumber'' || {{applink|MobilePhone}} || {{yes}} || Telephone with prompt. Available only in 3.0 –.
|-
|-
| callto || ? || {{applink|MobilePhone}} || {{unk}} || ?
| callto || ? || {{applink|MobilePhone}} || {{no}} || ?
|-
|-
| telshow || <tt>telshow://</tt> || {{applink|MobilePhone}} || {{unk}} || ?
| telshow || <tt>telshow://</tt> || {{applink|MobilePhone}} || {{no}} || ?
|-
|-
| tellock || <tt>tellock://</tt>  || {{applink|MobilePhone}} || {{unk}} || ?
| tellock || <tt>tellock://</tt>  || {{applink|MobilePhone}} || {{no}} || ?
|-
|-
| telanswer || <tt>telanswer:</tt>''something''<tt>/</tt>  || {{applink|MobilePhone}} || {{no}} || Used in <tt>-[</tt><tt>[[SBCallAlertDisplay]] answer:]</tt>.
| telanswer || <tt>telanswer:</tt>''something''<tt>/</tt>  || {{applink|MobilePhone}} || {{no}} || Used in <tt>-[</tt><tt>[[SBCallAlertDisplay]] answer:]</tt>.
|-
|-
| telemergency || <tt>telemergency://</tt> || {{applink|MobilePhone}} || {{unk}} || ?
| telemergency || <tt>telemergency://</tt> || {{applink|MobilePhone}} || {{no}} || ?
|-
|-
| vmshow || <tt>vmshow:</tt>''integer'' || {{applink|MobilePhone}} || {{unk}} || Voicemail. Used in <tt>-[</tt><tt>[[SBVoiceMailAlertItem]] performUnlockAction]</tt>.
| vmshow || <tt>vmshow:</tt>''integer'' || {{applink|MobilePhone}} || {{no}} || Voicemail. Used in <tt>-[</tt><tt>[[SBVoiceMailAlertItem]] performUnlockAction]</tt>.
|-
|-
| maps || <tt>maps:</tt>''params'' || {{applink|Maps}} || {{yes}}
| maps || <tt>maps:</tt>''params'' || {{applink|Maps}} || {{yes}}
Line 89: Line 89:
| springboard || <tt>springboard:/</tt>''command'' || {{applink|SpringBoard}} || {{no}}
| springboard || <tt>springboard:/</tt>''command'' || {{applink|SpringBoard}} || {{no}}
| SpringBoard command. Seems abandoned. Only referred in <tt>-[</tt><tt>[[UIApplication]] _runSpringboardCommand:]</tt>.
| SpringBoard command. Seems abandoned. Only referred in <tt>-[</tt><tt>[[UIApplication]] _runSpringboardCommand:]</tt>.
|-
| webclip || ? || {{applink|MobileSafari}} || {{no}}
| ?
|-
| audio-player-event || ? || {{applink|MobileMusicPlayer}} || {{no}} || ?
|-
| video-player-event || ? || {{applink|MobileMusicPlayer}} || {{no}} || ?
|}
|}


Line 101: Line 108:
* '''Friend-to-friend URLs:''' These are of the form <tt>maps:ffsourceuserid=</tt>''sourceFriend''<tt>&ffdestuserid=</tt>''destFriend''.
* '''Friend-to-friend URLs:''' These are of the form <tt>maps:ffsourceuserid=</tt>''sourceFriend''<tt>&ffdestuserid=</tt>''destFriend''.
* '''Friend URLs:''' These are of the form <tt>maps:ffuserid=</tt>''friend''.
* '''Friend URLs:''' These are of the form <tt>maps:ffuserid=</tt>''friend''.
=== Launching Private URL schemes ===
Private URLs must be launched within SpringBoard. The <tt>-[</tt><tt>[[SBAlertDisplay]] launchURL:]</tt> method is a convenient way to launch these URLs, e.g.
<source lang="javascript">
cy# SBAlertDisplay.messages["launchURL:"]([NSURL URLWithString:"prefs:root=WIFI&path=JoinEnterprise"])
</source>


== References ==
== References ==

Revision as of 16:32, 9 November 2009

NSURL is a class that holds an URL.

Pre-registered URL scheme

There are a bunch of URL schemes reserved within iPhoneOS. You cannot register these schemes in your app.

Scheme Form Handler Public Usage
ftp - MobileSafari Yes File transfer protocol.
http - MobileSafari Yes Hypertext transfer protocol.
https - MobileSafari Yes HTTP Secure.
feed [1] MobileSafari Yes Web Feed.
feeds - MobileSafari Yes Web Feed?
calshow calshow:x?eventid=id MobileCal No Used in -[SBCalendarAlertItem revealEvent].
calinvite calinvite:eventid=id MobileCal No Used in -[SBInvitationAlertItem revealEvent].
calinvitelist ? MobileCal No ?
mailto [2] MobileMail Yes Sending emails.
sms sms:phoneNumber MobileSMS Yes Sending SMS.
tel tel:phoneNumber MobilePhone Yes Telephone.
telprompt telprompt:phoneNumber MobilePhone Yes Telephone with prompt. Available only in 3.0 –.
callto ? MobilePhone No ?
telshow telshow:// MobilePhone No ?
tellock tellock:// MobilePhone No ?
telanswer telanswer:something/ MobilePhone No Used in -[SBCallAlertDisplay answer:].
telemergency telemergency:// MobilePhone No ?
vmshow vmshow:integer MobilePhone No Voicemail. Used in -[SBVoiceMailAlertItem performUnlockAction].
maps maps:params Maps Yes Maps. URLs of this type can be interpreted as http://maps.google.com/maps?params.
prefs prefs:params Preferences No Preferences. params can be like root=General&path=About.
youtube youtube:videoID YouTube Yes YouTube video. URLs of this type can be interpreted as http://www.youtube.com/v/videoID.
itms - MobileStore Yes iTunes Music Store.
itmss - MobileStore Yes ?
itms-apps - AppStore Yes ?
itms-appss - AppStore Yes ?
webcal [3] SpringBoard Yes WebCal subscription.
doubletap doubletap://displayID SpringBoard No The application will be launched when user double tapped the home button.
search search://displayID/domain/identifier SpringBoard No ?
rdar rdar:url MobileSafari Yes Radars (bug reporter). URLs of this type can be interpreted as https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/wa/openURL?url=url.
radar radar:url MobileSafari Yes Radars (bug reporter). Equivalent to rdar:.
javascript - MobileSafari No Execute Javascript. Can only be used in MobileSafari.
ff ff:param or maps:param FriendFinderApp Unknown Friend finder URL. Not usable yet.
springboard springboard:/command SpringBoard No SpringBoard command. Seems abandoned. Only referred in -[UIApplication _runSpringboardCommand:].
webclip ? MobileSafari No ?
audio-player-event ? MobileMusicPlayer No ?
video-player-event ? MobileMusicPlayer No ?

In addition, common Jailbroken devices also have cydia and apptapp scheme reserved for Cydia.

Friend Finder URLs

Friend finder URLs are handled by the unknown application "com.apple.FriendFinderApp". It may be similar in function to Google Latitude[1].

There are 4 kinds of friend finder URLs:

  • "ff/acc" URLs: These are of the form ff:t=token. These URLs will be transformed to https://iphone-services.apple.com/ff/acc?t=token&bid=0. There are also maps:t=token which the only difference is bid=1.
  • "ff/su" URLs: These are of the form ff:em=email. These URLs will be transformed to https://iphone-services.apple.com/ff/su?em=email.
  • Friend-to-friend URLs: These are of the form maps:ffsourceuserid=sourceFriend&ffdestuserid=destFriend.
  • Friend URLs: These are of the form maps:ffuserid=friend.

Launching Private URL schemes

Private URLs must be launched within SpringBoard. The -[SBAlertDisplay launchURL:] method is a convenient way to launch these URLs, e.g.

cy# SBAlertDisplay.messages["launchURL:"]([NSURL URLWithString:"prefs:root=WIFI&path=JoinEnterprise"])

References

  1. iPhone URL Schemes – Including Google Latitude: http://www.dc-studios.net/blog/?p=148