Android APP调起另外一个APP并传值

Android APP调起另外一个APP并传值,第1张

第一种:

第二种:

setClassName内部也是调用的setComponent。

调用方:

被调用方在AndroidManifest的Activity中添加自定义action:

被调用方数据接收:

第一种:

调用方通过点击H5网页上按钮

这种方法存在着弊端就是没办法判断手机上是否安装APP时,更适合打开自己APP中Activity。一般建议js与java进行交互调用原生的方法: WebViewJavascriptBridge 使用简单方便,并且避免了一些js脚本注入漏洞。

第二种:隐式调用

被调用方在AndroidManifest的Activity中添加自定义action:

被调用Activity中数据接收:

注意: 这两种方式只适合针对某个页面,都只是在自己应用中跳转第三方应用,并不是真正的唤醒,比如应用A已经在后台存在了,应用B调用以上两种方式后,只是在应用B中重新打开了一个应用A,此时的应用A是相当与存在两个,一个是在后台单独存在,一个是依存应用B存在,是添加到应用B的栈中的,当点击A页面里面的跳转按钮时才真正调起跳转到A应用。

itms-apps:// 和 itms:// 开头的链接都可以,而此时 https:// 开头的链接不可以

创建两个示例Demo,TestDemo和Test2Demo,现在需要实现从Test2Demo跳转到TestDemo中

1、在被跳转的App配置一个协议scheme,这里命名为test(名字可随意配置,当然最好是英文并且跟你项目相关)

targets ->info ->URL Types ->URL Scheme ->填写协议

2、在需要跳转 *** 作的App中执行跳转的方法,实现下面方法

OK,到这里如果你的系统是ios9.0以下,已经大大功告成了。但是,如果是9.0以后,请看下一步。

3、配置协议白名单

在需要跳转 *** 作的App的info.plist文件中增加一个 LSApplicationQueriesSchemes 字段,把它设置为数组类型,并配置需要跳转的协议名单

其中参数mt:8的含义为:

实现iOS APP之间的相互跳转, 使用的就是UIApplication的openURL:方法.

那么, 如果想要在openURL方法中传递参数和数据, 应该如何实现呢?

AppDelegate的application:openURL:options方法

通过URL传递参数,在AppDelegate的 application:openURL:options 方法中, 参数url在两个APP都是一样的值.

如在第一个App中调用如下,

则在 跳转到的App 的AppDelegate.m文件的 application:openURL:options 方法中, 即可获取该url的完整信息.

这样, 就通过URL本身在两个APP之间传递了参数.该参数的格式与Http请求的GET格式保存一致.

通过URL只能简单地传递参数, 如果要传递负责的数据如image就只能通过剪贴板UIPasteboard了.

如在跳转入口App中, 向系统剪贴板中填充数据:

则在 跳转到的App 中, 从剪贴板中取出数据便可以使用:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10657700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存