iOS Widget快速浏览页面的创建以及证书添加标识符

登录开发者账号
https://developer.apple.com/account/ios/certificate/development

// 配置证书

Description :描述

Identifier:Groups.com.XXXX

工程添加widget类 如下图




选择  NEXT

填好 Product Name  文件名

选择  Finish  创建好了

- (void)viewDidLoad {

    [superviewDidLoad];

    // 打开时的高度

    self.preferredContentSize =CGSizeMake([UIScreenmainScreen].bounds.size.width,100);

}


// 折叠

- (void)viewWillAppear:(BOOL)animated {

    [superviewWillAppear:animated];

    

    self.extensionContext.widgetLargestAvailableDisplayMode =NCWidgetDisplayModeExpanded;

}


 //展开

- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {

    if (activeDisplayMode ==NCWidgetDisplayModeCompact) {

        self.preferredContentSize =CGSizeMake([UIScreenmainScreen].bounds.size.width,110);

    } else {

        self.preferredContentSize =CGSizeMake([UIScreenmainScreen].bounds.size.width,300);

    }

}




- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets{

    return UIEdgeInsetsMake(0.0,0.0,0,0);

}


//通过extensionContext借助host app调起APP (比如放个按钮 在按钮点击事件里直接调用以下方法 打开APP)

- (void)openURLContainingAPP {

    [self.extensionContextopenURL:[NSURLURLWithString:@"appextension://xxx"]completionHandler:^(BOOL success) {

        if (success) {

            NSLog(@"APP启动完成");

        };

    }];

}

// 设置 extensionContext

项目->TARGETS->右侧顶部选info标签拉到最底部-> URL Types 里面进行设置->URL Schemes 里面写的与appextension://要一致就可唤起APP

// 数据传递 共享 问题 (我的选的 NSUserdefaults 因为我传的数据量不大)

首先们选择targets->然后选择containing app->Capabilities->打开app groups的开关->打开选+ 写 group.com.xxx

通过后项目会生成 (Widget的名字).entitlements的文件可以看到

注意:你的项目与Widget的两个地方的 app groups都要设置且必须一致才能保障正常通信 widget默认不支持任何第三方类、库的需要单独设置

// 存数据

- (void)saveDataByNSUserDefaults{

    NSUserDefaults *shared = [[NSUserDefaultsalloc]initWithSuiteName:@"group.com.xxx"];

    [sharedsetObject:@"asdfasdf"forKey:@"widget"];

    [shared synchronize];

}

// 读数据

- (NSString *)readDataFromNSUserDefaults{

    NSUserDefaults *shared = [[NSUserDefaultsalloc]initWithSuiteName:@"group.com.xxx"];

    NSString *value = [sharedvalueForKey:@"widget"];

    return value;

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值