iOS - 跳转App Store下载 app 的两种方式

简介: iOS - 跳转App Store下载 app 的两种方式

一、第 1 种:直接跳转 demo



image.png

image.png

image.png

1.1、Swift 版本

/// 跳转
@objc func click1() {
   let url = URL(string: "itms-apps://itunes.apple.com/app/id 1142110895")
   // 注意: 跳转之前, 可以使用 canOpenURL: 判断是否可以跳转
   if !UIApplication.shared.canOpenURL(url!) {
       // 不能跳转就不要往下执行了
       return
   }
   if #available(iOS 10.0, *) {
       UIApplication.shared.open(url!, options: [:]) { (success) in
           if (success) {
               print("10以后可以跳转url")
           }else{
               print("10以后不能完成跳转")
           }
       }
    } else {
       // Fallback on earlier versions
       let success = UIApplication.shared.openURL(url!)
       if (success) {
           print("10以下可以跳转")
       }else{
           print("10以下不能完成跳转")
       }
    }
}


提示:上面 id429849944 中 id 后面的数字是app的唯一id,我们可以在app store 获取任意一个app的id


image.png

image.png

  • 如果app未上线我们可以登录apple开发者账号,点开自己创建的应用获取app唯一的id


  • 1.2、OC版本


- (void)click1 {
    NSURL *url = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id1142110895"];
    if (@available(iOS 10.0, *)){
         [[UIApplication sharedApplication]openURL:url options:@{UIApplicationOpenURLOptionsSourceApplicationKey:@YES} completionHandler:^(BOOL success) {
             if (success) {
                 NSLog(@"10以后可以跳转url");
             }else{
                 NSLog(@"10以后不可以跳转url");
             }
         }];
     }else{
         BOOL success = [[UIApplication sharedApplication]openURL:url];
         if (success) {
              NSLog(@"10以前可以跳转url");
         }else{
              NSLog(@"10以前不可以跳转url");
         }
     }
 }


二、第 2 种: 应用内跳转 demo



image.png

image.png

image.png

  • 2.1、Swift 版本
  • 导入头文件 import StoreKit
  • 添加跳转


@objc func click2() {
  let storeProductVC = StoreKit.SKStoreProductViewController()
  storeProductVC.delegate = self
  let dict = [SKStoreProductParameterITunesItemIdentifier: "1142110895"]
  storeProductVC.loadProduct(withParameters: dict) { (result, error) in
     guard error == nil else {
          return
     }
   }
   present(storeProductVC, animated: true, completion: nil)
}
  • 实现协议回调


extension ViewController: SKStoreProductViewControllerDelegate {
    func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
         viewController.dismiss(animated: true, completion: nil)
    }
}
  • 2.2、OC版本
  • 导入头文件 #import <StoreKit/StoreKit.h>,遵守协议:<SKStoreProductViewControllerDelegate>
  • 添加跳转


//2:实现代理SKStoreProductViewControllerDelegate
SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];
storeProductViewContorller.delegate = self;
//加载一个新的视图展示
[storeProductViewContorller loadProductWithParameters: @{SKStoreProductParameterITunesItemIdentifier : @"1142110895"} completionBlock:^(BOOL result, NSError *error) {
    //回调
    if(error){
         NSLog(@"错误%@",error);
    }else{
        //应用界面
        [self presentViewController:storeProductViewContorller animated:YES completion:nil];
    }
}];
  • 实现协议(取消按钮监听)回调


- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController{
    [self dismissViewControllerAnimated:YES completion:nil];
}


目录
相关文章
|
9月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
1248 0
|
11月前
|
人工智能 IDE 前端开发
写给尊贵的 Tare Pro 用户的喂饭级 IOS APP 开发指南
本文介绍了如何利用 AI IDE Trae,从零开始快速开发一个 iOS 应用《回声》。通过 AI 辅助完成需求梳理、原型设计、编码与调试,展示了 AI 在整个开发流程中的强大助力。
2265 0
|
Swift iOS开发 开发者
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
3026 13
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
|
存储 数据安全/隐私保护 开发者
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
899 8
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
|
人工智能 程序员 API
iOS|记一名 iOS 开发新手的前两次 App 审核经历
啥,这玩意也有新手保护期?
483 0
|
8月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1338 139
|
8月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
594 137

热门文章

最新文章