Android和iOS 多个app应用之间相互调用

先说原理:安卓和iOS实现多个app应用之间相互调用的原理是一样的,都是通过在安装app时在系统注册一个类似url的地址,代表app的地址(每个app都有,且都可以自定义),通过访问这个地址就可以启动这个应用,并且和http协议中的url类似,可以再地址后面加上自定义参数,传递给被调用的app

实现方法:

iOS:

1. 现在info.plist中添加一个新的选项 URL types 加一个item ,在item中加一个URL Schemes 加一个item(例如value可以填myAppScheme),如下图


Android和iOS 多个app应用之间相互调用_第1张图片

2 .然后在工程的info页 URL Types应该自己改下,identifier和URL Schemes例如可以填myAppScheme

Android和iOS 多个app应用之间相互调用_第2张图片

完成1,2步时就可以通过在Safari浏览器地址栏中输入myAppScheme://来调用自己的app了

3. 在AppController类中这个方法:(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options

这个方法是应用被其他应用调用时调用时响应的,可以在这里看到url,url里的参数,典型的url如:myAppScheme://test/123

myScheme后面的参数可以有,也可以没有,如果有参数,拿到url就可以处理其中的参数了;如果没有参数myAppScheme://,那就仅仅是该应用被启动,没有其他的了


Android:

1.和iOS中info.plist中类似,在manifest.xml 中的主activity中的intent-filter中添加一个新的intent-filter如下

intent-filter

action android:name="android.intent.action.VIEW"

category android:name="android.intent.category.BROWSABLE  

data android:scheme="myAppScheme"

intent-filter

完成第1步就可以通过在安卓浏览器地址栏中输入myAppScheme://来调用自己的app了

2.在activity中设计到activity传递intent的地方就可以收到启动app地址后面传递过来相关的信息了,和iOS的AppController类中的上面的那个方法类似

Intent intent = getIntent();

你可能感兴趣的:(Android和iOS 多个app应用之间相互调用)