美文网首页
iOS widget 开发入门小结

iOS widget 开发入门小结

作者: ChangeWorld | 来源:发表于2017-07-13 11:48 被阅读71次
    先感谢无私分享的博主大大们,一并附上一波入门贴:

    iOS开发之widget实现
    iOS开发之widget的简单实现
    从0到1思考与实现iOS-Widget
    iOS widget开发
    iOS开发-widget基础
    iOS之widget开发(Today Extension)

    1. widget是一个什么东西?

    Web Widget,中文译名被称作是微件,是一小块可以在任意一个基于HTML的Web页面上执行的代码,它的表现形式可能是视频,地图,新闻,小游戏等等。它的根本思想来源于代码复用,通常情况下Widget的代码形式包含了DHTML,JavaScript以及Adobe Flash。 简单点说就是一个小挂件,小应用,为主应用服务的一个小而美的存在形式

    在iOS中这样的挂件类似于通知栏,存在于在屏幕的最左边,然后还可以在支持3D touch功能的设备上按住可以看到缩小版的widget的一个快捷方式.

    2. 如何创建这样一个应用?

    打开Xcode->File->New 一个 Target-> iOS Today Extension 直接创建就ok啦

    3. 需要做哪些配置?

    使用的是纯代码,所以把系统自动生成的StoryBoard删掉,然后在info.plst里添加字段NSExtension,对应的Value是一个字典类型,代码如下:

        <dict>
            <key>NSExtensionPointIdentifier</key>
            <string>com.apple.widget-extension</string>
            <key>NSExtensionPrincipalClass</key>
            <string>TodayViewController</string>
        </dict>
    
    

    做好这些配置之后,进行groupID的绑定
    当然是自定义的这个ID,保证主app与widget两边的通信,数据互通
    操作如下: 点击蓝色工程->Capabilities -> APP Groups 打开开关按钮-> + 创建一个groupID
    然后会自动生成两个文件,一个是宿主app的,一个是widget的, 是plist格式的文件, 它的XML代码如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.security.application-groups</key>
        <array>
            <string>group.com.t.widget.app</string>
        </array>
    </dict>
    </plist>
    
    

    4. 代码如何构建?

    不知道是什么问题,调用不了宿主APP里的文件,搞得我重新创建了一些辅助类,布局类Masonry也用不了,貌似要用pod打入~~ 后续再看, 写代码和宿主app一个样,几个代理方法以及生命周期的时机把控
    主要是事件的处理和app跳转,解析参数之类的一些技巧.
    在app里新建一个url scheme , widgetDemo , 跳转的时候拼上参数, widgetDemo: //args = homePage
    然后在Appdelegate的- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation回调方法里做解析判断,然后做一些事情...

    5. 有什么用途?

    • 在不改变宿主app本身的情况下,新增了一个APP入口或展示切面,shortCut操作更加快捷以及方便
    • 轻量级的应用使用方便,不占用空间
    • 提升了app的逼格以及用户的体验
      ......

    相关文章

      网友评论

          本文标题:iOS widget 开发入门小结

          本文链接:https://www.haomeiwen.com/subject/prlwhxtx.html