应用程序互相跳转

  1. 应用场景

1) 使用第三方用户登录,需要用户授权,还需要”返回到调用的程序,同时返回授权的用户名”

2) 应用程序推广,网易彩票,设置-推荐应用-有很多应用程序图标
-如果本机已经安装过,会直接跳转到另外一个应用程序
-软件的广告,推广结果,后续会有一些列的金钱上的结算

3) 支付宝,第三方支付,淘宝,电话费充值。。。

  1. 要打开本机上的其他应用程序,需要设置schemes,自定义的协议头,可以打开其他的应用程序

跳转的代码如下:

  • (IBAction)openWangyi:(id)sender
    {
    // 跳转到其他应用程序
    // schemes: 网易的scheme wangyi
    NSURL *url = [NSURL URLWithString:@”wangyi://view?newsid=201410130001”];

    // 判断本机是否安装了目标程序
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
    } else {
    NSLog(@”没有安装,可以再给定下载地址,前往”);
    }
    }

    1. 新浪微博的授权界面说明:

1> 在新浪微博中,本身不能直接跳转到该界面
2> 用其他应用程序打开时,如果scheme时weibo://oaauth,直接进入此界面
3> 如果直接点击,返回,返回调用放应用程序
4> 如果点击表格行中的用户名,直接返回用户信息给调用应用程序

  1. 如果要返回调用的应用程序,需要知道调用我们的应用程序的scheme

/* 只要是由其他应用程序打开的,就会调用此方法 /
/* URL 就是其他应用程序,打开当前程序使用的URL /
- (BOOL)application:(UIApplication )application handleOpenURL:(NSURL )url

/**
openURL 是打开当前应用程序的url
sourceApplication 是当开当前应用程序的源程序的BundleId

提示:一旦重写了新方法,旧方法就不再被执行
但是:很多第三方框架,都建议两个方法全都写
*/
- (BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

配置应用程序的scheme步骤:点击工程名称->选择相应target->info->URL Types->填写相应的scheme

当然了,在iOS9中,应用程序之间跳转要配置相应的白名单:在info.plist中添加LSApplicationQueriesSchemes,选择为NSArray,添加一项,输入要跳转的程序的scheme即可

### Android Studio 中 Activity 之间的跳转实现 在 Android 开发中,`Intent` 是用于启动新 `Activity` 的核心工具之一。通过创建显式的 `Intent` 并调用 `startActivity()` 方法,可以从当前的 `Activity` 启动另一个目标 `Activity`。 以下是具体的实现方式: #### 使用显式 Intent 进行 Activity 跳转 当需要从一个 `Activity` 跳转到另一个已知的目标 `Activity` 时,可以通过以下代码实现: ```java // 创建一个新的 Intent 对象,指定源 Activity 和目标 Activity Intent intent = new Intent(CurrentActivity.this, TargetActivity.class); // 启动目标 Activity startActivity(intent); ``` 上述代码片段展示了如何利用显式 `Intent` 来完成两个 `Activity` 间的跳转[^1]。 --- #### 带参数的数据传递 如果希望在跳转过程中携带数据,则可以使用 `putExtra()` 方法向 `Intent` 添加键值对形式的数据。接收方可以在其生命周期回调函数(如 `onCreate()` 或 `onStart()`)中提取这些数据。 发送端设置数据的方式如下所示: ```java // 定义要传递的数据 String message = "Hello from CurrentActivity"; // 将数据附加至 Intent intent.putExtra("key_message", message); // 执行跳转动作 startActivity(intent); ``` 接收端获取数据的过程则需借助于 `getIntent()` 方法以及对应的取值逻辑: ```java // 获取传入的 Intent 数据对象 Bundle extras = getIntent().getExtras(); if (extras != null) { String receivedMessage = extras.getString("key_message"); } ``` 此部分描述了如何通过 `putExtra()` 方法来附带额外的信息给下一个界面处理。 --- #### 外部链接跳转案例 对于某些特殊场景下可能涉及跨应用或者基于 URI 方案定义触发行为的需求,可采用隐式意图配合特定协议地址完成操作。下面给出了一种典型例子说明怎样构建点击事件处理器从而导航至预设位置的同时还能捎带上必要的上下文资料。 ```kotlin binding.to.setOnClickListener { val intent = Intent().apply { this.action = Intent.ACTION_SEND this.data = Uri.parse("http://example.com") // 替换为目标 URL 地址 } context.startActivity(intent) } ``` 这里体现了另一种形式即设定 action 类型为 ACTION_SEND 及关联 web 链接作为 destination 参数实例化过程中的运用情景[^2]。 --- ### 总结 综上所述,在 Android 应用程序内部切换不同页面主要依赖于构造合适的 Intents 结合 startActivities API 达成目的;与此同时倘若存在交互需求的话记得善加运用 putExtras 功能模块辅助传输所需变量集合即可达成预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值