mirror of
https://github.com/wahyd4/libr-ios.git
synced 2026-08-09 05:06:46 +10:00
205 lines
6.3 KiB
Swift
205 lines
6.3 KiB
Swift
//
|
|
// WebViewController.swift
|
|
// librx
|
|
//
|
|
// Created by Yunlong Zheng on 15/8/20.
|
|
// Copyright (c) 2015年 librx. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class WebViewController: UIViewController {
|
|
|
|
@IBOutlet weak var webView: UIWebView!
|
|
|
|
@IBOutlet weak var likeButton: UIBarButtonItem!
|
|
@IBOutlet weak var activeIndicatorView: UIActivityIndicatorView!
|
|
|
|
@IBOutlet weak var bookmarkButton: UIBarButtonItem!
|
|
private var hasFinishLoading = false
|
|
private var isLikedPost = false
|
|
private var isBookMarkPost = false
|
|
|
|
var post : Post!
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
self.activeIndicatorView.hidden = false
|
|
self.activeIndicatorView.startAnimating()
|
|
|
|
loadPostContent(post)
|
|
|
|
webView.delegate = self
|
|
webView.scrollView.bounces = false;
|
|
|
|
self.title = self.post.title
|
|
|
|
}
|
|
|
|
override func viewDidAppear(animated: Bool) {
|
|
super.viewDidAppear(animated)
|
|
LibrxService.viewPost(post.id)
|
|
|
|
if self.isLikedPost {
|
|
self.likeButton.image = UIImage(named: "Like")
|
|
}else {
|
|
self.likeButton.image = UIImage(named: "LikeEmpty")
|
|
}
|
|
|
|
if self.isBookMarkPost {
|
|
self.bookmarkButton.image = UIImage(named: "BookmarkFilled")
|
|
}else {
|
|
self.bookmarkButton.image = UIImage(named: "Bookmark")
|
|
}
|
|
|
|
}
|
|
|
|
override func didReceiveMemoryWarning() {
|
|
if webView.loading {
|
|
webView.stopLoading()
|
|
}
|
|
|
|
let alert = UIAlertController(title: "Stopped Loading",
|
|
message: "This site is memory intensive and may cause a crash. Please use a browser instead.",
|
|
preferredStyle: UIAlertControllerStyle.Alert)
|
|
|
|
alert.addAction(UIAlertAction(title: "Dismiss",
|
|
style: UIAlertActionStyle.Cancel, handler: { (action) -> Void in
|
|
}))
|
|
|
|
alert.addAction(UIAlertAction(title: "Open in Safari",
|
|
style: UIAlertActionStyle.Default, handler: { (action) -> Void in
|
|
UIApplication.sharedApplication().openURL(NSURL(string:self.post.url)!)
|
|
return
|
|
}))
|
|
|
|
self.presentViewController(alert, animated: true, completion: nil)
|
|
}
|
|
|
|
override func preferredStatusBarStyle() -> UIStatusBarStyle {
|
|
return UIStatusBarStyle.LightContent;
|
|
}
|
|
|
|
@IBAction func toggleLikePostAction(sender: AnyObject) {
|
|
|
|
if self.isLikedPost {
|
|
LibrxService.unlikePost(self.post.id)
|
|
self.likeButton.image = UIImage(named: "LikeEmpty")
|
|
self.isLikedPost = false
|
|
}else {
|
|
LibrxService.likePost(self.post.id)
|
|
self.likeButton.image = UIImage(named: "Like")
|
|
self.isLikedPost = true
|
|
}
|
|
|
|
}
|
|
|
|
@IBAction func toggleBookMarkPostAction(sender: AnyObject) {
|
|
|
|
if self.isBookMarkPost {
|
|
LibrxService.unBookmarkPost(self.post.id)
|
|
self.bookmarkButton.image = UIImage(named: "Bookmark")
|
|
self.isBookMarkPost = false
|
|
}else {
|
|
LibrxService.bookmarkPost(self.post.id)
|
|
self.bookmarkButton.image = UIImage(named: "BookmarkFilled")
|
|
self.isBookMarkPost = true
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@IBAction func dismiss(sender: AnyObject) {
|
|
|
|
if let _ = self.navigationController {
|
|
self.navigationController?.popViewControllerAnimated(true)
|
|
return
|
|
}
|
|
self.dismissViewControllerAnimated(true, completion: nil)
|
|
|
|
}
|
|
|
|
@IBAction func shareToWeChat(sender: AnyObject) {
|
|
self.shareToSocialMedia(self.post)
|
|
}
|
|
|
|
func loadPostContent(post:Post) {
|
|
|
|
LibrxService.postDetails(post.id) { [weak self](post) -> () in
|
|
if let that = self {
|
|
// mark: load static html content when post is good format
|
|
if post.goodFormat {
|
|
|
|
that.webView.loadHTMLString(post.getFormatContent(), baseURL: nil)
|
|
|
|
} else{
|
|
that.webView.loadRequest(NSURLRequest(URL: NSURL(string:post.url)!))
|
|
}
|
|
|
|
that.isLikedPost = post.liked
|
|
that.isBookMarkPost = post.bookmarked
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
extension WebViewController: UMSocialUIDelegate{
|
|
|
|
func shareToSocialMedia(post: Post) {
|
|
|
|
UMSocialData.defaultData().urlResource.setResourceType(UMSocialUrlResourceTypeImage, url: post.thumbnail)
|
|
|
|
UMSocialData.defaultData().extConfig.wechatSessionData.url = post.url
|
|
UMSocialData.defaultData().extConfig.wechatSessionData.title = post.title
|
|
UMSocialData.defaultData().extConfig.wechatSessionData.shareText = post.summary
|
|
|
|
UMSocialData.defaultData().extConfig.wechatTimelineData.url = post.url
|
|
UMSocialData.defaultData().extConfig.wechatTimelineData.title = post.title
|
|
UMSocialData.defaultData().extConfig.wechatTimelineData.shareText = post.summary
|
|
|
|
UMSocialData.defaultData().extConfig.wechatFavoriteData.url = post.url
|
|
UMSocialData.defaultData().extConfig.wechatFavoriteData.title = post.title
|
|
UMSocialData.defaultData().extConfig.wechatFavoriteData.shareText = post.summary
|
|
|
|
UMSocialSnsService.presentSnsIconSheetView(self, appKey: UMSocialConstants.appKey, shareText: post.title, shareImage: UIImage(named: "AppIcon"),
|
|
shareToSnsNames: [UMShareToSina,
|
|
UMShareToWechatTimeline,
|
|
UMShareToWechatSession,
|
|
UMShareToEmail,
|
|
UMShareToSms
|
|
],
|
|
delegate:self)
|
|
}
|
|
|
|
func didFinishGetUMSocialDataInViewController(response: UMSocialResponseEntity!) {
|
|
|
|
if(response.responseCode == UMSResponseCodeSuccess)
|
|
{
|
|
//得到分享到的微博平台名
|
|
NSLog("share to sns name is \(response.data)")
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
extension WebViewController: UIWebViewDelegate{
|
|
|
|
func webViewDidFinishLoad(webView: UIWebView) {
|
|
self.activeIndicatorView.hidden = true
|
|
}
|
|
|
|
func webViewDidStartLoad(webView: UIWebView) {
|
|
hasFinishLoading = false
|
|
updateProgress()
|
|
}
|
|
|
|
func updateProgress() {
|
|
|
|
}
|
|
|
|
} |