网页唤起app,并传值到app中使用的全过程 ios篇

网页唤起app,并传值到app ios篇

安卓篇上有相对完整的html代码和lua代码,此处着重写OC底层相关的代码,安卓篇路径点击这里
准备工作是需要在html网页中添加主动拉取app的相关代码

//触发点击事件
$('#add').click(function() {
		opens()
	})
	
function opens(){
	if((isAndroid&&isWeixin)){
	    $('#isphone').html("在浏览器中打开");
	 }else{
		if(!hasApp){
		//同样没检测到app,去下载          
        	window.location='你的app链接';
       	}else{
       		if((isiOS&&isWeixin)) {
				//微信中添加遮罩层
				$('#isphone').html("在safari中打开");
			}else if(!isWeixin&&!isAndroid){
				console.log('isiOS');
				window.location='userapp://user.app/openwith?roomid='+roomid+‘&type=’+type;
			}
	    }
	 }
}

  1. 在plist文件中,增加URL types,将相应的host和scheme填进去(和android一样,此处的host和scheme是网页拉起app的关键,一定不能填错)
    在这里插入图片描述
    1. 在AppController.mm文件中,获取从url拿到的参数
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    if(!url){
        return NO;
    };
    NSString * urlString=[url absoluteString];
    //NSLog(@"urlString = %@",urlString);
    NSLog(@"type shareurl = %@",urlString);
    NSRange range = [urlString rangeOfString:@"roomid="];
    NSRange gametype = [urlString rangeOfString:@"type="];
    
    if(gametype.location!= NSNotFound ){
        NSString *parametersString = [urlString substringFromIndex:gametype.location + 5];
        gametype = [parametersString rangeOfString:@"="];
        if(gametype.location == NSNotFound){
            NSLog(@"type parametersString = %@",parametersString);
            [[NSUserDefaults standardUserDefaults] setObject:parametersString forKey:@"IOSOpenUrlGameType"];
            [[NSUserDefaults standardUserDefaults] synchronize];
            //return YES;
        }
    }
    NSLog(@"rparametersString = text----------");
    if(range.location!= NSNotFound){
        NSLog(@"range.location!= NSNotFound");
        NSString *parametersString = [urlString substringFromIndex:range.location + 7];
        range = [parametersString rangeOfString:@"&"];
        NSLog(@"rparametersStrin1 = %@",parametersString);
        if(range.location != NSNotFound){
            NSLog(@"rparametersString2 = %@",parametersString);
            parametersString = [parametersString substringToIndex:range.location];
            NSLog(@"room parametersString3 = %@",parametersString);
            [[NSUserDefaults standardUserDefaults] setObject:parametersString forKey:@"IOSOpenUrlRoomID"];
            [[NSUserDefaults standardUserDefaults] synchronize];
            return YES;
        }
    }
    return [self application:application handleOpenURL:url];
}
  1. 在lua代码中去调用OC拿到的值
    在这里插入图片描述
    这样就拿到所需要的参数了,通过获取到的参数就可以去做其他事情了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值