前言
使用scheme跳轉(zhuǎn)怯屉,URL參數(shù)分離,跳轉(zhuǎn)路由
scheme
轉(zhuǎn)送門
http://www.reibang.com/p/138b44833cda
http://www.reibang.com/p/0811ccd6a65d
safari
safari地址MouoApp://shopDetal?userId=10965
使用
AppDelegate
// iOS 9 以上請用這個
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
if([url.scheme isEqualToString:@"mouoapp"]){
//url.query
//進(jìn)入的時候判斷邏輯為
if (self.mainController && [MouoUserManager sharedAccountManager].user) {
[JumpManager gotoControllerWithScheme:url.absoluteString controller:self.mainController.currentSelectController];
}
return YES;
}
}
路由類
+ (MouoBaseController *)gotoControllerWithScheme:(NSString *)scheme controller:(MouoBaseController *)controller {
//商家詳情進(jìn)入
if ([scheme containsString:@"shopDetal"]) {
NSLog(@"scheme地址:%@",scheme);
NSString *userId = [self getParamByName:@"userId" URLString:scheme];
return [self gotoShopController:@{@"Id":userId} controller:controller];
}
return nil;
}
url參數(shù)分離
+ (NSString *)getParamByName:(NSString *)name URLString:(NSString *)url
{
NSError *error;
NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)", name];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags
options:NSRegularExpressionCaseInsensitive
error:&error];
// 執(zhí)行匹配的過程
NSArray *matches = [regex matchesInString:url
options:0
range:NSMakeRange(0, [url length])];
for (NSTextCheckingResult *match in matches) {
NSString *tagValue = [url substringWithRange:[match rangeAtIndex:2]]; // 分組2所對應(yīng)的串
return tagValue;
}
return @"";
}
html源碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name=“viewport” content=“initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width” />
<title></title>
</head>
<body>
<a id="openApp">陌友App進(jìn)入</a>
<script>
var ios_schema = "MouoApp://shopDetal?userId=10965",
ios_download_url = "https://itunes.apple.com/cn/app/%E9%99%8C%E5%8F%8B-%E9%99%8C%E7%94%9F%E4%BA%BA%E4%BA%A4%E5%8F%8B/id1210615145?mt=8";
var android_schema = "喚醒協(xié)議",
android_download_url = "";
document.getElementById("openApp").onclick = function(e) {
if (/(Android)/i.test(navigator.userAgent)) {
var ifr = document.createElement("iframe");
ifr.style.display = "none";
ifr.src = android_schema;
document.body.appendChild(ifr);
window.setTimeout(function() {
document.body.removeChild(ifr);
// if(confirm("檢測到您手機(jī)可能沒有安裝app饵沧,您要前往下載君凱商聯(lián)網(wǎng)app嗎锨络?")) {
location.href = android_download_url; //打開app下載地址,有app同事提供
// }
}, 2000)
}
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
var install = false;
var loadTime = new Date();
location.href = ios_schema;
setTimeout(function() {
var outTime = new Date()
if (confirm("檢測到您手機(jī)可能沒有安裝app,馬上去蘋果商店下載吧~ ")) {
location.href = ios_download_url;
}
}, 2000)
}
}
</script>
</body>
</html>