Latest 0.15.0
Homepage https://github.com/Enflick/URLEmbeddedView
License MIT
Platforms ios 9.0, requires ARC
Frameworks UIKit, CoreData, CoreGraphics
Authors

URLEmbeddedView

Platform
Language
Carthage compatible
Version
CocoaPods
License

Features

  • [x] Simple interface for fetching Open Graph Data
  • [x] Be able to display Open Graph Data
  • [x] Automatically caching Open Graph Data
  • [x] Automatically caching Open Graph Image
  • [x] Tap handleable
  • [x] Clearable image cache
  • [x] Clearable data cache
  • [x] Support Swift3.2 (until 0.11.x)
  • [x] Support Swift4
  • [x] Support Carthage since 0.11.1

Usage

To run the example project, clone the repo, and run pod install from the Example directory first.

let embeddedView = URLEmbeddedView()
embeddedView.loadURL(urlString)

Layouts

  • Default

  • No Image

  • No response

Customization

embeddedView.textProvider[.Title].font = .boldSystemFontOfSize(18)
embeddedView.textProvider[.Title].fontColor = .lightGrayColor()
embeddedView.textProvider[.Title].numberOfLines = 2
//You can use ".Title", ".Description", ".Domain" and ".NoDataTitle"

Data and Image Cache

You can get Open Graph Data with OGDataProvider.

OGDataProvider.shared.fetchOGData(urlString: String, completion: ((OpenGraph.Data, Error?) -> Void)? = nil) -> String?
OGDataProvider.shared.deleteOGData(urlString: String, completion: ((Error?) -> Void)? = nil)
OGDataProvider.shared.deleteOGData(ogData: OGData, completion: ((Error?) -> Void)? = nil)

You can configure time interval for next updating of OGData.
Default is 10 days.

OGDataProvider.shared.updateInterval = 10.days

You can get UIImage with OGImageProvider.

OGImageProvider.shared.loadImage(urlString: String, completion: ((UIImage?, Error?) -> Void)? = nil) -> NSURLSessionDataTask?
OGImageProvider.shared.clearMemoryCache()
OGImageProvider.shared.clearAllCache()

OpenGraph.Data Properties

public let createdAt: Date
public let imageUrl: URL?
public let pageDescription: String?
public let pageTitle: String?
public let pageType: String?
public let siteName: String?
public let sourceUrl: URL?
public let updatedAt: Data
public let url: URL?

Installation

CocoaPods

URLEmbeddedView is available through CocoaPods. To install
it, simply add the following line to your Podfile:

# Uncomment the next line to define a global platform for your project
# platform :ios, '8.0'

target 'Your Project Name' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for URLEmbeddedViewSample
  pod "URLEmbeddedView"
end

Carthage

If you’re using Carthage, simply add
NoticeObserveKit to your Cartfile:

github "marty-suzuki/URLEmbeddedView"

Use in Objective-C

#import <URLEmbeddedView/URLEmbeddedView-Swift.h>

- (void)viewDidLoad {
    [super viewDidLoad];
    URLEmbeddedView *embeddedView = [[URLEmbeddedView alloc] init];
    [self.view addSubView:embeddedView];
    [embeddedView loadURL:@"https://github.com/" completion:nil];
}

- (void)setUpdateInterval {
  [OGDataProvider sharedInstance].updateInterval = [NSNumber days:10];
}

- (void)fetchOpenGraphData {
  [[OGDataProvider sharedInstance] fetchOGDataWithUrlString:self.textView.text
                                            completion:^(OpenGraphData *data, NSError *error) {
      NSLog(@"OpenGraphData = %@", data);
  }];
}

Here is Objective-C sample.

Special Thanks

Requirements

  • Xcode 9 or greater
  • iOS 8.0 or greater
  • UIKit
  • CoreData
  • CoreGraphics

Other

Author

Taiki Suzuki, [email protected]

License

URLEmbeddedView is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "URLEmbeddedViewTextNow",
    "version": "0.15.0",
    "summary": "URLEmbeddedView is a view that automatically cache the Open Graph Protocol.",
    "homepage": "https://github.com/Enflick/URLEmbeddedView",
    "license": "MIT",
    "authors": {
        "Jonathan Kolyer": "[email protected]"
    },
    "source": {
        "git": "https://github.com/Enflick/URLEmbeddedView.git",
        "tag": "0.15.0"
    },
    "platforms": {
        "ios": "9.0"
    },
    "requires_arc": true,
    "source_files": [
        "URLEmbeddedView/*.{swift}",
        "URLEmbeddedView/*/*.{swift}"
    ],
    "resources": "Resources/*.{pdf,xcdatamodeld}",
    "frameworks": [
        "UIKit",
        "CoreData",
        "CoreGraphics"
    ],
    "pushed_with_swift_version": "4.0"
}

Pin It on Pinterest

Share This