2015-08-02 7 views
8

मैं अपना एप्लिकेशन यूआरएल को सही तरीके से साझा करने के लिए संघर्ष कर रहा हूं ताकि "सफारी में खोलें" और "क्रोम में खोलें" गतिविधि आइटम शेयर शीट में दिखाई दें।UIActivityViewController का उपयोग करते हुए URL साझा करते समय मुझे "सफारी में खोलें" आइकन कैसे दिखाई दे सकता है?

NSURL *data = _article.url; 
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[data] applicationActivities:nil]; 
  • एक NSData आइटम का उपयोग कर के रूप में [NSData dataWithContentsOfURL:] मैं यूआरएल में कुछ अलग अलग तरीकों से साझा करने की कोशिश की है;
  • एक NSURL
  • [myURL absoluteString] का उपयोग कर एनएसएसटींग के रूप में;

संदर्भ के लिए NSURL (यूआरएल) और NSString (शीर्षक) के संयोजन के साथ, इन दो गतिविधि आइटम मैं दिखाने के लिए प्राप्त करने के लिए कोशिश कर रहा हूँ कर रहे हैं।

enter image description here

उत्तर

3

ऐसा प्रतीत होता है एक बहुत ही लोकप्रिय पुस्तकालय "SVWebViewController" एप्लिकेशन वेब दृश्यों में प्रदर्शित करने के लिए नहीं है। लाइब्रेरी में कुछ अच्छी गतिविधि आइटम भी शामिल हैं जिनका उपयोग आप इसे करने के लिए कर सकते हैं।

https://github.com/TransitApp/SVWebViewController

यहाँ कोड आप इसे काम करने के लिए उपयोग कर सकते हैं (मत भूलना अपने कोड में हेडर के रूप में अच्छी तरह से शामिल करने के लिए)

#import "SVWebViewControllerActivityChrome.h" 
#import "SVWebViewControllerActivitySafari.h" 

- (void)share:(id)sender { 
    NSArray *activities = @[[SVWebViewControllerActivitySafari new], [SVWebViewControllerActivityChrome new]]; 
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[_article.url] applicationActivities:activities]; 
} 
+0

यह वास्तव में एक का निर्माण किया है नहीं करने के लिए एप्पल की ओर से बेकार है पर पाया जा सकता NSRLs साझा करते समय सफारी के लिए विकल्प। – Mahouk

2
वहाँ

का एक उदाहरण में कुछ (छोटा है) पुस्तकालय जो आप उपयोग कर सकते हैं, "सफारी में खोलें" और "क्रोम में खोलें" गतिविधि आइटम प्राप्त करने के लिए कस्टम UIActivity नियंत्रण प्रदान करते हैं।

  • सफारी: TUSafariActivity
  • क्रोम: ARChromeActivity

    @IBAction func shareClick(_ sender: Any) { 
        var sharingItems = [AnyObject]() 
        var sharingActivities = [UIActivity]() 
    
        sharingItems.append(URL(string: shareURL)! as AnyObject) 
        sharingActivities.append(TUSafariActivity()) 
        sharingActivities.append(ARChromeActivity()) 
    
        let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: sharingActivities) 
        activityViewController.popoverPresentationController?.barButtonItem = self.navigationItem.rightBarButtonItem; 
        self.present(activityViewController, animated: true, completion: nil) 
    } 
    

इससे भी अधिक कस्टम UIActivity नियंत्रण https://github.com/shu223/UIActivityCollection

संबंधित मुद्दे