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

如何在App类的OnResume方法中获取AppDelegate.cs传递的参数值?

结论

完全可以实现。SetValueForKey是给NSObject对象添加关联键值的方法,只要AppDelegate实例没有被销毁,存储的键值就会一直存在,App的生命周期和iOS端的AppDelegate生命周期完全同步,加上你已经将AppDelegate实例传入App构造函数,直接持有该实例调用对应取值方法即可,具体实现步骤如下:

实现步骤

  1. 首先在共享项目的App类中定义私有字段存储传入的AppDelegate实例,构造函数中完成赋值:
public partial class App : Application
{
    // 存储原生AppDelegate实例
    private readonly AppDelegate _nativeAppDelegate;

    public App(AppDelegate appDelegate)
    {
        InitializeComponent();
        _nativeAppDelegate = appDelegate;
        MainPage = new MainPage();
    }
}
  1. 重写OnResume方法时,调用ValueForKey方法取出之前存储的值即可:
protected override void OnResume()
{
    base.OnResume();
    // 取出存储的键值
    var storedValue = _nativeAppDelegate.ValueForKey(new Foundation.NSString("key"))?.ToString();
    // 后续可直接使用storedValue,此处取到的值就是你之前设置的"text"
}

注意事项

  • 存取时使用的key字符串必须完全一致,否则会取不到值
  • 取值后建议做空判断,避免空引用异常
  • 如果你后续需要跨重启场景存储该值,也可以替换为NSUserDefaults进行持久化存储,存取逻辑类似

内容的提问来源于stack exchange,提问作者alexandr f

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:06:03