在做移动应用的单点登录时间,需要点击浏览器中启动链接APP和参数传递APP其中,用于处理相应的接口,现在,通过浏览器调用Android和iOS在应用过程中实现理清固化博客。为了查询。
一:通过浏览器调用Android应用
1)改动配置文件AndroidManifest.xml,在须要打开的activity下加入例如以下配置:
<intent-filter> <data android:scheme="ssotest" /><!-- 通过这个ssotest打开应用程序,可自行定义。 --> |
2)在HTML中。加入<a href='ssotest://'>ssotest</a>,就可以点击此链接打开APP。
3)其它的APP也能够通过例如以下方式打开该应用:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ssotest://"))); |
4)假设想传递參数,能够在url追加就可以,比方:
<a href='ssotest://id=123456'>ssotest</a> |
5)接受并解析參数,在接收的Activity中使用例如以下代码获得參数:
this.getIntent().getScheme();//获得Scheme名称 this.getIntent().getDataString();//获得Uri所有路径。依据格式自己解析字符串就可以。 |
二:通过浏览器调用iOS应用
1)改动plist文件,注冊对外的URL
A:找到project的<app>info.plist B: 点击 information property list后面的加号,从列表中选择URL types C: 展开URL types,再展开Item0,将Item0下的URL identifier改动为URL Scheme D: 展开URL Scheme,将Item0的内容改动为ssotest(可自行定义) |
2)在HTML中。加入<a href='ssotest://'>ssotest</a>。就可以点击此链接打开APP。
3)假设想在启动的APP中接受此URL并进行特殊的处理。能够改动project的AppDelegate.m,重写openURL方法,例如以下:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { // 可通过[url scheme]获得定义的Scheme名称 // 可通过[url absoluteString] 获得整个的URL路径。可解析传递过来的数据 } |
版权声明:本文博客原创文章,博客,未经同意,不得转载。