Android与iOS自定义URL Scheme唤醒app
16lz
2021-01-23
Android与iOS自定义URL Scheme唤醒app
需求
手机浏览器中的网页需要唤醒app的特定页面及向app页面传递参数。
实现方案
Android与iOS端均可通过配置自定义的URL Scheme来达到外部唤醒页面的目的。
Android
定义 URL Scheme
在AndroidManifest.xml中对需要唤醒的Activity配置
<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="article" android:scheme="jaren" /> intent-filter>
通过配置host与scheme就可以定位到此页面,唤醒协议jaren://article
,需要传递参数可拼接query参数
jaren://article?tid=20
获取参数
在Activity的onCreate
方法中获取网页传递的参数,如获取文章的id然后执行网络请求获取文章详情的数据。
Intent intent = getIntent(); if (Intent.ACTION_VIEW.equals(intent.getAction())){ Uri uri=intent.getData(); if (uri!=null){ articleId=uri.getQueryParameter("tid"); } }
iOS
定义 URL Scheme
iOS在info.plist
文件URL types节点下添加需要自定义的URL Schemejaren
。
获取参数并跳转到相应页面
在AppDelegate.m
实现方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{ if ([url.scheme isEqualToString:@"jaren"]) { [self jumpPage:url]; return true; } return false;}
jumpPage
方法则是匹配url字符串来定位特定页面,url.query
是传递的参数字段。
网页调用协议
网页端调用定义的协议
<div> <a href="jaren://article?aid=20">app打开文章a> div>
这样在浏览器中打开此网页,点击app打开文章
就可以唤醒app的文章详情页面。
更多相关文章
- Android 获取View的位置参数:x,y和相对父容器的偏移量以及中心点
- Android登录界面开发及响应;页面跳转;传参
- Android studio 页面布局无法显示问题
- android 进入页面隐藏输入法
- android 随手记之文件+参数上传请求
- activity页面切换效果
- Android成长(二)——两个页面交互
- 关于Android设备屏幕大小及密度的系统参数类
- Android中ListView.getCount()与ListView.getChildCount()区别和