zoukankan      html  css  js  c++  java
  • openURL in APP Extension

    var responder = self as UIResponder?
    
    while (responder != nil){
        if responder!.respondsToSelector(Selector("openURL:")) == true{
            responder!.callSelector(Selector("openURL:"), object: url, delay: 0)
        }
        responder = responder!.nextResponder()
    }


    This will find a suitable responder to send the openURL to.

    You need to add this extension that replaces the performSelector for swift and helps in the construction of the mechanism:

    extension NSObject {
        func callSelector(selector: Selector, object: AnyObject?, delay: NSTimeInterval) {
            let delay = delay * Double(NSEC_PER_SEC)
            let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
    
            dispatch_after(time, dispatch_get_main_queue(), {
                NSThread.detachNewThreadSelector(selector, toTarget:self, withObject: object)
            })
        }
    }




    && Try it in OC
    UIResponder *responder = self;
    while(responder){
        if ([responder respondsToSelector: @selector(OpenURL:)]){
            [responder performSelector: @selector(OpenURL:) withObject: [NSURL URLWithString:@"www.google.com" ]];
        }
        responder = [responder nextResponder];
    }

    or

     UIResponder* responder = self;
        while ((responder = [responder nextResponder]) != nil)
        {
            NSLog(@"responder = %@", responder);
            if([responder respondsToSelector:@selector(openURL:)] == YES)
            {
                [responder performSelector:@selector(openURL:) withObject:[NSURL URLWithString:urlString]];
            }
        }

    转载请注明出处。
  • 相关阅读:
    K8S-安全机制
    K8S-Service
    K8S-Pod资源管理
    K8S-kubelet启动过程
    每日进度
    每日进度
    每日进度
    每日进度
    每日进度
    归纳及计划
  • 原文地址:https://www.cnblogs.com/Jenaral/p/5408366.html
Copyright © 2011-2022 走看看