You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo SDK 43及以上版本如何创建IntentLauncher自定义ActivityAction

Expo SDK 43 自定义ActivityAction实现方法

SDK 43对expo-intent-launcher的startActivityAsync()方法做了破坏性变更,不再支持直接传入字符串类型的Intent Action作为第一个入参,必须传入符合规范的ActivityAction类型对象。

自定义ActivityAction的方法非常简单,只需要构造一个包含对应字段的普通对象即可,示例如下:

新旧写法对比

SDK 42 旧写法

import * as IntentLauncher from 'expo-intent-launcher';

// 直接传入字符串Action
await IntentLauncher.startActivityAsync('android.settings.WIFI_SETTINGS', {
  extra: {
    test_key: 'test_value'
  }
});

SDK 43+ 新写法

import * as IntentLauncher from 'expo-intent-launcher';

// 自定义ActivityAction对象
const customActivityAction = {
  // *必填字段*:填写你原本要传入的字符串Intent Action
  action: 'android.settings.WIFI_SETTINGS',
  // 可选字段:按需添加对应Intent属性即可
  // data: '自定义Uri字符串',
  // type: 'MIME类型字符串',
  // category: ['Intent分类字符串'],
  // flags: Intent标记数值,
  // packageName: 目标应用包名字符串,
  // className: 目标Activity类名字符串
}

// 传入构造好的ActivityAction对象
await IntentLauncher.startActivityAsync(customActivityAction, {
  extra: {
    test_key: 'test_value'
  }
});

补充说明

如果你要调用的是Android系统常用的预设Action,也可以直接使用Expo内置的常量避免手动写字符串出错,例如:

  • IntentLauncher.ActivityAction.WIFI_SETTINGS 对应系统WiFi设置页
  • IntentLauncher.ActivityAction.LOCATION_SOURCE_SETTINGS 对应系统定位设置页
    所有内置常量可以直接在IntentLauncher.ActivityAction命名空间下查看。

内容的提问来源于stack exchange,提问作者Esteban Chornet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:54:04