美文网首页
iOS APP Extension - Share

iOS APP Extension - Share

作者: SunnyLeong | 来源:发表于2018-09-13 10:27 被阅读354次
    APP Extension APP Extension

    今天主要说下 Share Extension 网上有很多教程,自个也亲自实现了一次!

    一 、Extension的种类

    我们可以在Xcode的File--->New--->Target里面看到不同平台的Extension,包括iOS、watchOS、tvOS、macOS等等。这里主要介绍iOS,主要包括以下几种Extensions:

    1.Action Extension:动作扩展,在另一个应用程序的上下文中操作或者查看内容

    2.Audio Unit Extension:音频单元扩展

    3.Broadcast UI Extension:广播UI 扩展

    4.Broadcast Upload Extension:广播上传扩展

    5.Call Directory Extension:呼叫目录扩展

    6.Content Blocker Extension:内容拦截器扩展

    7.Custom Keyboard Extension:键盘扩展,例如第三方的键盘,搜狗输入法,百度输入法等。

    8.iMessage Extension:消息的扩展

    9.Intents Extension:Intents扩展

    10.Intents UI Extension:Intents UI扩展

    11.Notification Content Extension:通知内容扩展

    12.Notification Service Extension:通知服务扩展

    13.Photo Editing Extension:图片编辑扩展,在照片app中编辑照片或者视频

    14.Share Extension:分享扩展,发布一个共享网站或者与其他应用共享内容。

    15.Shared Links Extension:分享链接扩展

    16.Spotlight Index Extension:Spotlight 索引扩展

    17.Sticker Pack Extension:贴纸包扩展

    18.Today Extension:Today扩展,可以快速获取更新或者在通知中心的近日视图中执行一项快速任务。

    等等。也可直接在苹果官方文档参见更多extension。

    可能用到的技术:
    将App添加到系统分享列相册和截图
    在系统分享列表中加入自己的应用-此方法仅限于分享文件
    分享1
    分享2
    分享3
    分享4
    分享5

    总有一篇适合你看懂的

    • 上架注意:分享的扩展里不可有延时操作,版本号和主工程保持一致,证书group记着上线看看打开可用状态,不可单独上线。

    二 、你可能使用到的技术

    给你的iOS应用注册url scheme(就是别的APP可以跳转到你的APP的一个接口)

    如何注册?

    每个应用都有一个或多个plist文件,即info.plist,在这个苹果自带配置文件中增加相关key-value。

    • 第一步:添加URL types

    • 第二步:展开URL types,第1个元素(即item 0)下方添加URL Schemes

    • 第三步:展开URL Schemes,第1个元素(即item 0)修改value为自定义的字符串,例如test

    测试:

    1.打开手机Safari,输入test://

    2.Safari提示,点击“打开”,ok!

    3.如果应用处于调试状态,可以断点在AppDegate中的application:openURL:options:方法里,可以拿到对应的url。对于使用基于url scheme页面导航框架的应用来说,hi可以做很多其他有意思的事。

    • APP之间跳转
    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:url]]){
    
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
    
    }
    
    

    可能用到链接

    三、iOS 获取当前屏幕显示的viewcontroller

    此功能用于跳转(分享的时候 跳转到自个APP 然后获取当前VC 然后就可以推出到任何VC进行分享 之后且返回当前VC 前提APP在登录情况下)

    //获取当前屏幕显示的viewcontroller
    
    - (UIViewController *)getCurrentVC
    {
        UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
        
        UIViewController *currentVC = [self getCurrentVCFrom:rootViewController];
            return currentVC;
    }
    
    - (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC
    {
        UIViewController *currentVC;
            if ([rootVC presentedViewController]) {
            // 视图是被presented出来的
            rootVC = [rootVC presentedViewController];
        }
            if ([rootVC isKindOfClass:[UITabBarController class]]) {
            // 根视图为UITabBarController
                    currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]];
        } else if ([rootVC isKindOfClass:[UINavigationController class]]){
            // 根视图为UINavigationController
            currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]];
        } else {
            // 根视图为非导航类
            currentVC = rootVC;
        }
        return currentVC;
    }
    

    最新iPhone

    相关文章

      网友评论

          本文标题:iOS APP Extension - Share

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