美文网首页iOS Developer程序员
ExtensionList: 一个快速获取App Extensi

ExtensionList: 一个快速获取App Extensi

作者: zidaneno5 | 来源:发表于2017-03-17 15:21 被阅读1410次

    English Version
    Or you can directly go to my github page for further infomation.

    ExtensionList 现已上架Bigboss源. 戳这里
    Reveal2Loader也已上架,戳这里

    Reveal升级2.0之后可以看Plugins,但是RevealLoader配合Applist只能看到用户安装的App,因此抽时间仿照Applist写了ExtensionList并且开源。顺便重写了下RevealLoader,也开源在Reveal2Loader

    ExtensionList

    ExtensionList使用的是LSApplicationWorkspaceinstalledPlugins函数来获取所有安装的Plugin,其中包含Today Widget, AppleWatch App等各种App Extension,并支持predicate过滤。

    详细用法可以参考Applist的使用说明

    ALSectionDescriptors

    • avaliable-extensions
      ExtensionList移除了ALSectionDescriptors字段suppress-hidden-apps参数。并增加了avaliable-extensions的BOOL属性,用于过滤系统版本要求高于当前设备iOS版本的Plugin。默认值是true

    • predicate
      ExtensionList获取到的是LSPlugInKitProxy实例的数组,predicate是针对这个类的属性进行过滤。LSPlugInKitProxy其中一个属性是protocol,对应的是iOS私有服务的ID。如你需要过滤today extension,就可以在predicate字段写入protocol contains 'com.apple.widget-extension'

    关于App Extension的类型,以及对应的ID,可以参考官网文档,或者看extension(*.appex)对应的Info.plist中的NSExtensionPointIdentifier字段。

    • A demo of ALSectionDescriptors
    ALSectionDescriptors = (
        {
            title = "Custom Keyboard";
            predicate = "protocol contains 'keyboard-service'";
            "icon-size" = 29;
            "cell-class-name" = ELSwitchCell;
            "avaliable-extensions" = 0;
        },
    )
    

    Reveal2Loader

    内置了一个RevealServer-2的framework。路径在/Library/Frameworks/RevealServer.framework,可以自己替换。
    这个没什么好说,只是改了下PreferenceLoader目录下的plist。

    IMG_2937.PNG IMG_2938.PNG IMG_2939.PNG

    相关文章

      网友评论

        本文标题:ExtensionList: 一个快速获取App Extensi

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