Widget的使用(基本使用)

首先,我们需要一个主进程,即主工程。在这里,只讲诉下如何创建Widget

点击file -> New -> Target 选择today


然后打开APPGroups。 按照下图完成打开。


然后找到APPgroups ,点击打开

然后点击下面的加号,新添加一个。最后命名为反域名形式。新建完成,选择新建的那个。然后widget也重复操作,注意的是,widget不需要再次新建group,只需要选择你主工程新建并且选择的那个group。



下图是widget的





/*

*~~~~~~

*/


如果在这里遇见问题,没有三个勾的,

首先,你可以点击下面有一个fix issues按钮 ,其次你需要确定你选择开发者账号和证书是否正确以及team是否填写。



若是还不行,那么登陆到menber center ---identiidentifiers--APP Groups --- + 号新建一个。然后返回选择。


若是如上,全是勾的,那么APPgroups 创建好了。

如果要跳转到app,需要在主程序的info.plist中新添 URL types 并且配置


- (IBAction)CreateNew:(id)sender {//这是MainInterface.storyboard中拖出来的button按钮的方法

//跳转到app主页

    [self.extensionContextopenURL:[NSURLURLWithString:@"BottomdayApp://action=GotoNew"]completionHandler:^(BOOL success) {

        NSLog(@"open url result:%d",success);

    }];

}

然后还需要到application中写

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{//判断跳转

    NSString* prefix =@"BottomdayApp://action=";

    if ([[urlabsoluteString] rangeOfString:prefix].location !=NSNotFound) {

       NSString* action = [[url absoluteString] substringFromIndex:prefix.length];

       if ([action isEqualToString:@"GotoHomePage"]) {

            //如果action=GotoHomePage 则跳到。。。

        }elseif ([action isEqualToString:@"GotoNew"]) {

           //写跳转代码。

            //如果action=GotoNew 跳转到。。。。

           return YES;

        }

    }

    

    return  YES;

}


下图中得item0 中得字符串是appgroup的名字,在数据的交互时候需要用到这个字符串。


    /*

     *  数据存入appgroups,写在主工程中。

     */

   NSUserDefaults *sharedUserDefault = [[NSUserDefaultsalloc] initWithSuiteName:@"group.com.daybyday.app"];

    NSData *data = [NSKeyedArchiverarchivedDataWithRootObject:@"这里可以是数组,字典,字符串等"];

    [sharedUserDefaultsetObject:data forKey:@"DayByday"];

    // 切莫忘记,依旧调用 synchronize 立即写入沙盒中

    [sharedUserDefaultsynchronize];

    

    /*  appgroups中数据获取

     * 写在TodayViewController中

     */

    NSUserDefaults *sharedUserDefaults = [[NSUserDefaultsalloc] initWithSuiteName:@"group.DayByday"];//注意不要写成NSUserDefaults *sharedUserDefaults = [NSUserDefaults standardUserDefaults];

   NSData *unarchiverData = [sharedUserDefaults objectForKey:@"DayByday"];//这里的key和存入数据时候的key必须相同。

    NSMutableArray *dataArray = [NSMutableArrayarrayWithArray:[NSKeyedUnarchiverunarchiveObjectWithData:unarchiverData]];


最后。我们只要布局,然后把数据放上就ok了。

布局代码,我就不写了,我放上写好的效果图




接下去说说上传过程把。首先,你需要根据主工程和widget两个的Bundle Identifier分别注册两个APP ID

注册时候勾上APP group

并且在完成之后编辑APPgroup ,使之状态为Enabled。

然后分别注册两个Provisioning Profiles 的Distribution并且下载。


上传时候需要配置的文件





小编是个小菜鸟,还在努力探索中,有什么需要修改或者有什么好玩的新东西记得给小编留言哦。

附上几个关于widget的博客地址

http://blog.csdn.net/yongyinmg/article/details/40982791

http://www.onevcat.com/2014/08/notification-today-widget/

http://www.cocoachina.com/industry/20140627/8960.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值