最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS 應(yīng)用內(nèi)顯示 AppStore 某個應(yīng)用的詳情

 更新時間:2016年07月22日 11:36:55   投稿:lqh  
本文主要介紹ISO應(yīng)用內(nèi)打開AppStorn 顯示某個應(yīng)用詳情,這里幫大家總結(jié)了兩種方法,大家對比一下,在項(xiàng)目中選擇應(yīng)用,

前言

  應(yīng)用內(nèi)跳轉(zhuǎn)到 AppStore 的文章很多,一般都是用 SKStoreProductViewController 來實(shí)現(xiàn)的,不知道有沒有在意一個問題:打開很慢??!怎么忍?!

 正文

  一般網(wǎng)上的文章的代碼:

 func openAppStore(url: String){
  if let number = url.rangeOfString("[0-9]{9}", options: NSStringCompareOptions.RegularExpressionSearch) {
   let appId = url.substringWithRange(number)
   let productView = SKStoreProductViewController()
   productView.delegate = self
   productView.loadProductWithParameters([SKStoreProductParameterITunesItemIdentifier : appId], completionBlock: { [weak self](result: Bool, error: NSError?) -> Void in
    if result {
     self?.presentViewController(productView, animated: true, completion: nil)
    } else {
     self?.openAppUrl(url)
    }
   })
  } else {
   openAppUrl(url)
  }
 }
 
 private func openAppUrl(url: String) {
  let nativeURL = url.stringByReplacingOccurrencesOfString("https:", withString: "itms-apps:")
  if UIApplication.sharedApplication().canOpenURL(NSURL(string:nativeURL)!) {
   UIApplication.sharedApplication().openURL(NSURL(string:url)!)
  }
 }
 
 func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
  viewController.dismissViewControllerAnimated(true, completion: nil)
 }

實(shí)現(xiàn)的效果很好,就是很慢,點(diǎn)擊按鈕調(diào)用 openAppStore 要很久才能顯示出界面,就算加一個轉(zhuǎn)圈效果也很差。原因是因?yàn)橐?nbsp; linkmaker.itunes.apple.com 根據(jù) identifier 查找鏈接,仔細(xì)看代碼我們會發(fā)現(xiàn) presentViewController 是在查找到結(jié)果才被調(diào)用,其實(shí)我們可以不用讓界面現(xiàn)出來,雖然時間是一樣的,但是用戶體驗(yàn)會很好,修改后代碼如下:

func openAppStore(url: String){
  if let number = url.rangeOfString("[0-9]{9}", options: NSStringCompareOptions.RegularExpressionSearch) {
   let appId = url.substringWithRange(number)
   let productView = SKStoreProductViewController()
   productView.delegate = self
   productView.loadProductWithParameters([SKStoreProductParameterITunesItemIdentifier : appId], completionBlock: { [weak self](result: Bool, error: NSError?) -> Void in
    if !result {
     productView.dismissViewControllerAnimated(true, completion: nil)
     self?.openAppUrl(url)
    }
   })
   self.presentViewController(productView, animated: true, completion: nil)
  } else {
   openAppUrl(url)
  }
 }
 
 private func openAppUrl(url: String) {
  let nativeURL = url.stringByReplacingOccurrencesOfString("https:", withString: "itms-apps:")
  if UIApplication.sharedApplication().canOpenURL(NSURL(string:nativeURL)!) {
   UIApplication.sharedApplication().openURL(NSURL(string:url)!)
  }
 }
 
 func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
  viewController.dismissViewControllerAnimated(true, completion: nil)
 }

代碼說明:

    不等 loadProductWithParameters 返回直接 presentViewController ,解析失敗再嘗試用 openURL 的方式打開。

參考:

    http://stackoverflow.com/questions/17871920/odd-behavior-with-skstoreproductviewcontroller

結(jié)束:        以上就是對ISO 應(yīng)用內(nèi)打開AppStorn顯示某個應(yīng)用詳情,有需要的朋友可以參考下。   

相關(guān)文章

  • 詳解IOS開發(fā)中生成推送的pem文件

    詳解IOS開發(fā)中生成推送的pem文件

    這篇文章主要介紹了詳解IOS開發(fā)中生成推送的pem文件的相關(guān)資料,這里提供詳細(xì)的實(shí)現(xiàn)步驟幫助大家實(shí)現(xiàn),希望大家能理解掌握,需要的朋友可以參考下
    2017-08-08
  • swift3.0實(shí)現(xiàn)圖片放大縮小動畫效果

    swift3.0實(shí)現(xiàn)圖片放大縮小動畫效果

    這篇文章主要為大家詳細(xì)介紹了swift3.0實(shí)現(xiàn)圖片放大縮小動畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 詳細(xì)整理iOS中UITableView的性能優(yōu)化

    詳細(xì)整理iOS中UITableView的性能優(yōu)化

    最近在微博上看到一個很好的開源項(xiàng)目,是關(guān)于如何優(yōu)化UITableView的,加上正好最近也在優(yōu)化項(xiàng)目中的類似朋友圈功能這塊,思考了很多關(guān)于UITableView的優(yōu)化技巧,所以決定詳細(xì)的整理下對優(yōu)化UITableView的理解,需要的朋友們可以參考借鑒。
    2017-03-03
  • Xcode8打印一堆log問題的快速解決方法

    Xcode8打印一堆log問題的快速解決方法

    剛裝的xcode8,不知道從哪來的一堆log,很奇怪。怎么解決此問題呢?下面小編給大家分享本教程幫助大家了解Xcode8打印一堆log問題的快速解決方法,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-10-10
  • iOS中 LGLAlertView 提示框的實(shí)例代碼

    iOS中 LGLAlertView 提示框的實(shí)例代碼

    這篇文章主要介紹了iOS中 LGLAlertView 提示框的實(shí)例代碼非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • IOS繪制動畫顏色漸變折線條

    IOS繪制動畫顏色漸變折線條

    這篇文章主要介紹了IOS繪制動畫顏色漸變折線條的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • iOS App開發(fā)中的UIStackView堆疊視圖使用教程

    iOS App開發(fā)中的UIStackView堆疊視圖使用教程

    UIStackView是iOS9以來新增加的組件,使我們能夠?qū)IView子類對象進(jìn)行靈活排版,這里我們就來看一下iOS App開發(fā)中的UIStackView堆疊視圖使用教程
    2016-07-07
  • iOS UICollectionView刷新時閃屏的解決方法

    iOS UICollectionView刷新時閃屏的解決方法

    本篇文章主要介紹了iOS UICollectionView刷新時閃屏的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 詳解iOS App開發(fā)中Cookie的管理方法

    詳解iOS App開發(fā)中Cookie的管理方法

    iOS中主要靠NSHTTPCookieStorage和NSHTTPCookie來管理Cookie,下面我們就來詳解iOS App開發(fā)中Cookie的管理方法,在最后一部分會單獨(dú)整理出如何清除Cookie的方法.
    2016-07-07
  • IOS開發(fā)代碼分享之設(shè)置UISearchBar的背景顏色

    IOS開發(fā)代碼分享之設(shè)置UISearchBar的背景顏色

    在項(xiàng)目開發(fā)中,我們經(jīng)常要用到UISearchBar,在網(wǎng)上看到了很多關(guān)于去除掉他背景色的方法,都已經(jīng)失效了,今天來分享一個正常使用的方法,希望能幫到大家
    2014-09-09

最新評論

杂多县| 海门市| 庆城县| 佛教| 洛宁县| 遵义市| 嵊州市| 德惠市| 嘉鱼县| 云和县| 社旗县| 嫩江县| 治多县| 原平市| 潮安县| 酒泉市| 焦作市| 共和县| 孝义市| 定州市| 梓潼县| 安图县| 务川| 林甸县| 宜章县| 荥经县| 峡江县| 红桥区| 措勤县| 昭平县| 福清市| 图们市| 邢台市| 建始县| 汝南县| 绍兴市| 榆中县| 海门市| 凤山县| 波密县| 柏乡县|