The internet also has to say this piece of, feel not to speak very well. And some of the details are not clear at all. Here rewrite the relevant knowledge points.
Main content
- What is URL Scheme?
- Key configurations in the project
- Precautions
What is URL Scheme?
iOS
One feature is that the app "binds" itself to a custom URL scheme
that scheme
launches the app from a browser or other app. Common sharing to third parties is based on Scheme
the jump.
iOS
it should be much easier to understand it by comparing web links URL Schemes
.
URL
, we are all very clear, http://www.apple.com
is a URL
, we also call it link or URL;
Schemes
, which represents a UR
position in an L-the most initial position, that is, the ://
previous character. For example http://www.apple.com
, this URL Schemes
is http.
Based on the use of the above URL Schemes
, we can easily understand that in the local application-based IOS, we can locate a Web page, as a special URL
to locate an application or even a specific function of the application. Positioning the application should be part of the application, that is URL 的 Schemes
, the part that opens the chief. Like texting, it'ssms:
You can understand the URL of an iOS app in a way that understands a Web page's url--, which is its URL, and makes a simple comparison between Apple's website and iOS:
|
Web page (apple) |
IOS app () |
Home/Open App |
Http://www.apple.com |
weixin:// |
Sub-page/specific features |
http://www.apple.com/mac/(Mac page) |
Weixin://dl/moments (Circle of Friends) |
So much for the basic conceptual nature.
The key configuration in the project is in the project
Info
Of
Url Type
In the configuration (
evoked End)
Url Type
, which indicates which prefix URLs can be opened instead of opening apps that start with those prefixes.
- Description
- URL identifier is just an identifier, feel free to fill in, suggested to write:
com.*.*
reverse Domain name method to ensure that the name of uniqueness.
- URL scheme is the command prefix you use to communicate, to locate an application.
In
Plist
Configuration in Files
- Note:
URL Schemes
is an array that allows the app to define multiple URL schemes
. Received to evoke how to handle
In the proxy method to - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
determine the source of arousal, according to the parameters carried by source app
Url
different operations. such as jumping to the development of the page, related to the logical processing and so on.
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { NSLog(@"Calling Application Bundle ID: %@", sourceApplication); NSLog(@"URL scheme:%@", [url scheme]); NSLog(@"URL query: %@", [url query]); // Customer Code return YES; }
The above configuration is configured in the evoked application.
Evoke end
In general, the caller can invoke appDelegate
the proxy method directly to wake up other applications.
- (void) awakeotherapp{nsstring *customurl = @ "otherapp://"; if ([[uiapplication Sharedapplication] CanOpenURL:[nsurl Urlwithstring:customurl]) {[uiapplication Sharedapplication] Openurl:[nsurl Urlwithstring:customurl]]; } else {uialertview *alert = [[@ "URL error" Message:[ NSString stringWithFormat: @ "No custom URL defined for%@", CustomURL] Delegate:self cancelbuttontitle:@" OK "otherbuttontitles: nil]; [Alert show]; } }
- It's important to note that in the
iOS9
future, the evoked side needs to be configured
LSApplicationQueriesSchemes
.iOS9
After the need, and iOS9
then improve app
the security, need to give a similar white list of things, in the white list can be opened app
. Otherwise, the error: -canopenurl:failed for URL: "openapptest://mark?id=007"-Error: "The" This app was not the allowed to the query for scheme O Penapptest "
Precautions
The above method can be used to wake up other applications and briefly summarize some of the considerations.
- URL Scheme is actually the only sign of an app app. Use it to make sure that the app is open.
- Be sure to distinguish which configurations are configured, Wake up, and wake up.
- After iOS9, you need to add to the evoke side
LSApplicationQueriesSchemes
.
- There is another problem that is not resolved, how to go back to the wake-up application interface. This need to refer to the official
XCallbackURL
. I heard it's a little complicated, so I'll see.
Text/paper Jane (Jane book author)
Original link: http://www.jianshu.com/p/7a308f5b89fc
Copyright belongs to the author, please contact the author to obtain authorization, and Mark "book author".
IOS app wakes up another app