We’ve received a ton of requests to add voice-enabled SMS to our Vlingo for iPhone application, which currently lets users speak to search the web, use Google maps, voice dial, and update their Facebook/Twitter status. The reason SMS hasn’t been added yet is Apple doesn’t currently support sending SMS via 3rd party applications. In fact, they don’t even allow 3rd party applications to invoke the native SMS (now called Messages) application with TO and BODY parameters. Oddly enough, they do allow 3rd party applications to invoke the native Mail app with any and all the supported parameters.
I was admittedly pretty excited when I first heard that Apple was giving a preview of their next generation iPhone OS. My hope was that finally Apple would add support for 3rd party application to send SMS messages directly, or at least be able to invoke the native SMS application with both TO and BODY parameters. I mean, clearly Apple understands the importance of messaging for 3rd party apps with the announcement of In App Email. But alas! I found no mention in either the keynote or in the SDK itself. So, I thought, maybe there’s another way…
In previous versions of the iPhone software, I was able to create an SMS message and pre-populate the TO address only. This was done by opening a URL from within a 3rd party application which in turn invoked the native SMS application. Using the 3.0 software, the same restriction seems to still apply.
For example, “sms:6175551212” will open the SMS application (renamed to Messages in 3.0) and bring up the conversation with the supplied contact (or, if there doesn’t exist a conversation for that contact, it will bring up the “New Message” view with the TO field pre-populated with the supplied number). In hopes to find a working variant the populates the BODY part, I’ve tried quite a few (about 75) different URL schemes, none of which worked, including the published URI scheme “sms:6175551212?body=hi!”.
My conjecture is that the native Contacts application is using the supported scheme whenever the user presses the “Text Message” button which appears in the contact detail view. Interestingly, in the 3.0 software I see that there is not an additional “Share Contact” button, which allows sending a vcard via either MMS or Email. Since MMS and SMS use the same application, I believe there must be a URL scheme to pre-populate an MMS message body with some content. Unfortunately, I haven’t found any clues on how that might be done. Perhaps, there are some tricks that can be done with the new Cut, Copy, and Paste feature that may allow injecting some content into an MMS, but again no clues.
I did find, however, the Cut, Copy, and Paste feature quite interesting. Provided 3rdparty applications can access the global pasteboard, perhaps we could work around the issue of not being able to invoke the native SMS application with a BODY parameter by allowing the user to speak, pasting their text onto the pasteboard, and invoking the SMS app with just the TO parameter at which point allow the user would have to do is paste their spoken text into the SMS message compose field. What an interesting user experience this would create.
With the advent of all the new APIs that I think Vlingo can take advantage of in a future release: Push Notifications, Maps API for embedded Google maps, iPod Library Access for allowing access to the underlying iPod app, the new and improved Recording API, and the proximity sensor a la Google Mobile App, why not allow 3rd party applications to send SMS? Sure, we could setup our own SMS gateway, but the user experience would be pretty lame (since we can’t integrate with the native inbox/outbox), not to mention the expense. Hopefully this is something Apple is working on, but I’m concerned since it seems to me like such low-hanging fruit I would have expected this support sooner.
Joe Cerra – User Experience Architect