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


目录
相关文章
|
17天前
|
人工智能 编解码 监控
游戏显卡驱动,NVIDIA App ,0xc000007b,amd显卡驱动下载,解决游戏慢,游戏卡等问题
本文介绍了游戏显卡驱动的重要性及安装方法,涵盖NVIDIA和AMD显卡驱动下载与更新,解决游戏卡顿、闪退及报错0xc000007b等问题。提供三款工具推荐,支持自动识别与手动精准安装,优化游戏性能,提升体验。
270 5
|
8天前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
133 0
|
2月前
|
存储 Android开发 数据安全/隐私保护
Thanox安卓系统增加工具下载,管理、阻止、限制后台每个APP运行情况
Thanox是一款Android系统管理工具,专注于权限、后台启动及运行管理。支持应用冻结、系统优化、UI自定义和模块管理,基于Xposed框架开发,安全可靠且开源免费,兼容Android 6.0及以上版本。
177 4
|
3月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
2月前
|
人工智能 IDE 前端开发
写给尊贵的 Tare Pro 用户的喂饭级 IOS APP 开发指南
本文介绍了如何利用 AI IDE Trae,从零开始快速开发一个 iOS 应用《回声》。通过 AI 辅助完成需求梳理、原型设计、编码与调试,展示了 AI 在整个开发流程中的强大助力。
237 0
|
2月前
|
iOS开发 MacOS
如何指定下载不同版本macOS app
本文介绍了多种下载和安装 macOS 的方法,包括使用终端命令下载指定版本的 macOS App 或 PKG 文件,以及通过脚本工具如 installinstallmacos.py 和 fetch-installer-pkg 实现自动化下载。同时还讲解了如何将 macOS 安装程序制作成可启动 U 盘,适用于系统重装或部署场景。
|
6月前
|
Swift iOS开发 开发者
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
653 13
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
|
10月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
8月前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
490 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决

热门文章

最新文章