Opening spotify app from my iphone app - iphone

I'm pretty sure there must be a way to launch spotify iphone app from my own app. I've seen SMP app (share my playlist) doing something very similar when pushing playlist into spotify app.
I guess it should be by using something like:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:#"spotify://search:muse"]];
As you can see, I want to be able to make spotify search for a specific keyword. The problem is I don't really know the spotify url scheme, if there is such thing available.
I've been searching in the web, in spotify developer website, etc. but nothing comes up...

I have run into a similar need in an app. My solution was to create a client that hits the Spotify API to return either XML or JSON of the search. For instance, if you want Muse, you would hit the API with the following URL:
http://ws.spotify.com/search/1/artist?q=muse
From the XML or JSON, you'll be able to extract the link to the particular artist within their URL scheme:
spotify:artist:12Chz98pHFMPJEknJQMWvI
Chop off the spotify:artist: portion and append that onto a Spotify artist link:
http://open.spotify.com/artist/12Chz98pHFMPJEknJQMWvI
Then, using the Spotify URL scheme and UIApplication, you can open the Spotify app to that particular artist's page:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:
#"spotify://http://open.spotify.com/artist/12Chz98pHFMPJEknJQMWvI"]];
Note, using URL schemes to access features of another app is generally undocumented and can be a fragile endeavor. If Spotify in the future decides to change anything about this, it will break this functionality without warning.

The quick fix I made was to remove the urlscheme that was added to the original uri.
so you'll be calling the uri directly.
which is 'spotify:artist:4gzpq5DPGxSnKTe4SA8HAU' or 'spotify:track:1dNIEtp7AY3oDAKCGg2XkH'
UIApplication.shared.openURL("spotify:artist:4gzpq5DPGxSnKTe4SA8HAU")
or
UIApplication.shared.openURL("spotify:track:1dNIEtp7AY3oDAKCGg2XkH")
this fix is for the crash when calling the old urlscheme from v6 and above.

Related

launching the facebook app to a group from iOS

What I am looking to do is launch the facebook iOS App from my iOS App. I can do that with fb://URL but what I need to do is start it off in a facebook group page. It seems like all I can do is launch the app to the users news feed. I have no problem launching safari from my app direct to the group using the URL you normally would use (https://www.facebook.com/groups/group_name) but I would rather have people end up in the iOS app not safari.
I expect I might have have more luck using the facebook API inside my program but think its will be less maintenance in the long run if I let my users just use the official app for being a part of our group.
You are already aware of the existence of the fb:// url scheme, which is the way to go.
calling it goes like this :
NSURL *theURL = [NSURL URLWithString:#"fb://<insert function here>"];
[[UIApplication sharedApplication] openURL:theURL];
In the place of <insert function here>, you could use the following ways to open the facebook app straight to a group of your choice (note that you must use the group id rather than its name):
fb://group/(fbid)/members
fb://group/(initWithGroupId:)/members
fb://groups
The last one opens to the groups overview (which you probably do not want), only added that for completeness.
Akosma has an overview of a great deal of app url schemes for ios here

How to get/view/read the current URL is in Safari?

Did lots of searching, just came up with the "how to open a URL in Safari..."
Looking to find how to get/view/read what the current URL is when Safari is opened.
Edit:
My app opens a URL with Safari as follows:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:myURL]];
Supposidly, after some validation from website, the ending URL has some attached info.
So I'm trying to get that final URL from Safari.
This is not possible, you do not have access to any outside app. However how most of these authentication / validation techniques work is (like facebook / dropbox login etc.) is that they use some kind of callback back to the app.
You can register an specific url scheme to your app which can have parameters, this way you can get the info in the url the you need. The website will need to support callbacks though or you would need to be able to access the website to provide it yourself.
On how to work with URL schemes you can check out this tutorial:
http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-working-with-url-schemes/
You cannot view this information, as the other posters have said. What you need to do is to use your own website to match the user of the app to the user on the website.
For example, you can send a random number to your website when the user is sent there buy.php?id=123445. Then request (periodically and/or with a button press) via the iPhone the result from your website ex. check.php?id=123445.
This also could be done with cookies and php sessions.

iPhone: fb://... URL opening the Premier Inn app, not Facebook

I don't know a lot about how the iOS handles URLs, but it appears to be doing something strange on my phone...
We have a 'Like' button in our app, that when clicked on is supposed to open the Facebook application (or Safari, if Facebook is not installed). For some reason, when I click it on my phone, it opens the "Premier Inn" app. I have both the Facebook App and Premier Inn app installed on my phone, but not sure why Facebook isn't opening when the following code is executed:
NSURL *fanPageURL = [NSURL URLWithString:#"fb://page/BIG_NUMBER_HERE"];
if (![[UIApplication sharedApplication] openURL: fanPageURL]) { ... }
For obvious reasons, I've substituted the page number for BIG_NUMBER_HERE in the above code.
Can anyone explain why this might be going wrong? Could the Premier Inn app have "registered" itself as a handler of the fb:// urls somehow?
Regards,
Just as you suggest, it sounds like Premier Inn has registered as a handler for "fb". There's no central registry to stop applications from using the same URL scheme, it's really just down to good luck and reasonable namespace choices by developers.
Edit: I can't find a canonical source for this, but the handler application that's called is that which is most recently installed.
try change that page to profile.

Passing a note into Evernote for iOS Applications

I'm working on an app and I want to preserve messages from my application into the users Evernote account (if they select Evernote as a destination and if they have said app installed). Any idea how I can do this locally without the Web API? I can open Evernote by a call:
NSURL *everNoteUrl= [NSURL URLWithString:[NSString stringWithFormat:
#"evernote://"]];
[[UIApplication sharedApplication] openURL:everNoteUrl];
But this typically crashes as soon as the Evernote splash image appears.
I see that apps like Mobile RSS can open up Evernote and pass in the selected RSS message into Evernote (with the wifi disabled), so I should be able to do this locally, but can't figure out how.
Thanks.
See the URL scheme documentation of Evernote:
http://www.evernote.com/about/developer/api/evernote-api.htm#_Toc297053092
Seems like you can only view existing content via the url scheme. Why don't you write an email to Evernote and write the result in that post here.
Edit:
I wanted to recommend to you to write an email yourself as a developer and ask the Evernote team, if there are extended urlscheme possibilities, which are not communicated in their documentation. And if they answer your mail, you could share your new knowledge here with us. That was my idea.
An idea, how MobileRSS does it: perhaps they push new content via webservices to Evernote, then retrieve the new content-ID and than open Evernote? Or they have a special deal with Evernote, but I don't think so.

How can I launch app store from my application

Im trying to implement button which opens app store application from my app. I use this simple line of code, which opens safari but not app store application.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: #"http://itunes.apple.com/sk/app/tweetie-2/id333903271?mt=8"]];
I dont know whats wrong, is the URL format correct? I was following this document.
All related questions in stackoverflow are outofdate I suppose.
If you want to bypass Safari, change 'itunes' in the URL to 'phobos'. Note that this will fail in the simulator, but most definitely works on the device.
According to the documentation, iTunes affiliate links have to process several redirects in order to wind up in iTunes. Follow the example to create an NSURLConnection, set yourself as its delegate, and use the string it ends up with to open with UIApplication.