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];
}


目录
打赏
0
0
0
0
18
分享
相关文章
Thanox安卓系统增加工具下载,管理、阻止、限制后台每个APP运行情况
Thanox是一款Android系统管理工具,专注于权限、后台启动及运行管理。支持应用冻结、系统优化、UI自定义和模块管理,基于Xposed框架开发,安全可靠且开源免费,兼容Android 6.0及以上版本。
66 4
写给尊贵的 Tare Pro 用户的喂饭级 IOS APP 开发指南
本文介绍了如何利用 AI IDE Trae,从零开始快速开发一个 iOS 应用《回声》。通过 AI 辅助完成需求梳理、原型设计、编码与调试,展示了 AI 在整个开发流程中的强大助力。
34 0
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
如何指定下载不同版本macOS app
本文介绍了多种下载和安装 macOS 的方法,包括使用终端命令下载指定版本的 macOS App 或 PKG 文件,以及通过脚本工具如 installinstallmacos.py 和 fetch-installer-pkg 实现自动化下载。同时还讲解了如何将 macOS 安装程序制作成可启动 U 盘,适用于系统重装或部署场景。
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
276 13
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
151 8
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
苹果开发者账户添加描述文件-对应App Store and Ad Hoc发布证书构建app添加描述文件-并且把cer证书转换为可用于打包的.p12证书-优雅草卓伊凡
苹果开发者账户添加描述文件-对应App Store and Ad Hoc发布证书构建app添加描述文件-并且把cer证书转换为可用于打包的.p12证书-优雅草卓伊凡
92 3
苹果开发者账户添加描述文件-对应App Store and Ad Hoc发布证书构建app添加描述文件-并且把cer证书转换为可用于打包的.p12证书-优雅草卓伊凡
仿第八区APP分发下载打包封装系统源码
该系统为仿第八区APP分发下载打包封装系统源码,支持安卓、iOS及EXE程序分发,自动判断并稳定安装。智能提取应用信息,自动生成PLIST文件和图标,提供合理的点数扣除机制。支持企业签名在线提交、专属下载页面生成、云端存储(阿里云、七牛云),并优化签名流程,支持中文包及合并分发,确保高效稳定的下载体验。 [点击查看源码](https://download.csdn.net/download/huayula/90463452)
272 22
App提交Appstore审核流程【转】
这是一个app提交到iTunces Connect被拒了4次摸索出来的经验,说多了都是泪,先让我擦擦...好了,话不多说,为了让中国的app不再那么容易被拒,或者被拒了不知道该咋办,我把我的小经验在这里分享给大家。
2681 0
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问