iOS開発は2つのAPP間のジャンプを実現
iOS開発は2つのAPP間のジャンプを実現
IOSプロジェクトを開発する際、2つのアプリが相互に呼び出す需要に遭遇する可能性があります.例えば、支付宝支払い......などなど.
1、URL Type項目の追加
a,プロジェクト内infoを開く.plistファイルinfomation propertyリスト項目の下にURL Typsを追加
2、URL Schemeの設定
a,URL typesを展開し,さらにItem 1を展開し,Item 1の下のURL identifierをURL Schemeに変更する
b,URL Schemeを展開し,Item 1の内容をmyappに変更する
3、その他のアプリケーションのジャンプ
呼び出し者である私は、次のように通過する必要があります.
NSString *paramStr = [NSString stringWithFormat:@"myAppTest://username=%@&age=%@&address=%@", @"test123", @"100", @" "];
NSURL *url = [NSURL URLWithString:[paramStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
このコードは、ターゲットアプリケーションをジャンプしてパラメータを渡します.
4、パラメータの受信
では、ProviderとしてCustomerから渡されたパラメータをどのように受信しますか?
まず、プロジェクトのAppDelegateを見つけます.mファイルを見つけ、openURLメソッドを見つけます(なければ実装します).OK、ここまで90%完成しました.続けてください.
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSString *urlStr = [url absoluteString];
if ([urlStr hasPrefix:@"myAppTest://"]) {
NSLog(@"TestAppDemo1 request params: %@", urlStr);
urlStr = [urlStr stringByReplacingOccurrencesOfString:@"myAppTest://" withString:@""];
NSArray *paramArray = [urlStr componentsSeparatedByString:@"&"];
NSLog(@"paramArray: %@", paramArray);
NSMutableDictionary *paramsDic = [[NSMutableDictionary alloc] initWithCapacity:0];
for (int i = 0; i < paramArray.count; i++) {
NSString *str = paramArray[i];
NSArray *keyArray = [str componentsSeparatedByString:@"="];
NSString *key = keyArray[0];
NSString *value = keyArray[1];
[paramsDic setObject:value forKey:key];
NSLog(@"key:%@ ==== value:%@", key, value);
}
}
return NO;
}
パラメータは,自己定義のパラメータ接合規則により解析される.ここまでアプリケーション間のジャンプが完了しました.
その他のリソースリファレンス:iosの2つのAPP間でジャンプ、転送