Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用swift为费率按钮添加链接?_Ios_Swift_App Store - Fatal编程技术网

Ios 如何使用swift为费率按钮添加链接?

Ios 如何使用swift为费率按钮添加链接?,ios,swift,app-store,Ios,Swift,App Store,首先,我不知道在提交我的应用程序之前如何获取链接,该链接是针对每个国家/地区的应用程序商店还是通用的 另外,我不知道这样做的方法是否只是将链接放在那里,如: @IBAction func rate(sender: AnyObject) { UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!) } 或者我应该用另一种方法来做这件事 谢谢转到你的itunesconnect帐户->我的应用->点击“

首先,我不知道在提交我的应用程序之前如何获取链接,该链接是针对每个国家/地区的应用程序商店还是通用的

另外,我不知道这样做的方法是否只是将链接放在那里,如:

@IBAction func rate(sender: AnyObject) {
    UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!)
}
或者我应该用另一种方法来做这件事


谢谢

转到你的itunesconnect帐户->我的应用->点击“+”按钮->新建iOS应用->填写要求详细信息->填写完所有详细信息后转到你的应用->点击更多按钮->查看应用商店->它会将你重定向到你的应用URL这将是通用的,在你的应用上线后也会一样。

试试这个,通过应用程序ID更改方法中的应用程序ID

Swift 5

import StoreKit

func rateApp() {
    if #available(iOS 10.3, *) {
        SKStoreReviewController.requestReview()

    } else if let url = URL(string: "itms-apps://itunes.apple.com/app/" + "appId") {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)

        } else {
            UIApplication.shared.openURL(url)
        }
    }
}
Swift 3\4

func rateApp() {
    guard let url = URL(string: "itms-apps://itunes.apple.com/app/" + "appId") else {
        return
    }
    if #available(iOS 10, *) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)

    } else {
        UIApplication.shared.openURL(url)
    }
}
let url = URL(string: "itms-apps:itunes.apple.com/us/app/apple-store/id\(YOURAPPID)?mt=8&action=write-review")!
UIApplication.shared.openURL(url)
id959379869这是您在应用程序的iTunes页面上访问时的id

示例:

如何获取ID

  • Itunesconnect帐户
  • 我的应用程序
  • 点击“+”按钮
  • 新的iOS应用程序
  • 填写需要的详细信息
  • 填写完所有详细信息后,转到应用程序
  • 点击更多按钮
  • AppStore上的视图
  • 它会将你重定向到你的应用程序URL这将是通用的
  • 查找Http URL

  • 您可以使用以下功能并将应用程序ID替换为您的应用程序ID。调用此功能将打开应用程序商店中的应用程序链接,用户将看到评论页面,在那里他可以单击并轻松编写评论

    func rateApp(){
       UIApplication.sharedApplication().openURL(NSURL(string : "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(APP_ID)&onlyLatestVersion=true&pageNumber=0&sortOrdering=1)")!);
    }
    

    这对我来说是最好的。 直接将用户引导到应用程序的“编写审阅”编写器

    Swift 3.1(支持iOS10及以下版本)

    引入新的
    action=write review

    let appID = "959379869"
    
    if let checkURL = URL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(appID)&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8") {
        open(url: checkURL)
    } else {
        print("invalid url")
    }
    
    ...
    
    func open(url: URL) {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
                print("Open \(url): \(success)")
            })
        } else if UIApplication.shared.openURL(url) {
                print("Open \(url)")
        }
    }
    
    在Swift 2.2上测试并运行

    let appID = "959379869" // Your AppID
    if let checkURL = NSURL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(appID)&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8") {
        if UIApplication.sharedApplication().openURL(checkURL) {
            print("url successfully opened")
        }
    } else {
        print("invalid url")
    }
    

    警告:如果您在模拟器上运行应用程序

     UIApplication.sharedApplication().openURL(NSURL(string : "url")!) 
    
    将不工作,因为模拟器中没有应用商店。为了测试此功能,您必须在设备上运行应用程序

    swift3

      func rateApp(){
    UIApplication.shared.open(URL(string : "itms-apps://itunes.apple.com/app/id959379869")!, options: [:]) { (done) in
      // Handle results
    
    }}
    

    id959379869这是在iOS 10.3+之后,您现在进入应用程序的iTunes页面时的id

    SKStoreReviewController允许用户通过对话框直接从应用程序内部对应用程序进行评级。唯一的缺点是,您只能请求StoreKit显示该对话框,但不能确定它是否会显示

    import StoreKit
    
    func requestToRate() {
        SKStoreReviewController.requestReview()
    }
    

    Swift 4

    func rateApp() {
        guard let url = URL(string: "itms-apps://itunes.apple.com/app/" + "appId") else {
            return
        }
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
    
        } else {
            UIApplication.shared.openURL(url)
        }
    }
    
    let url = URL(string: "itms-apps:itunes.apple.com/us/app/apple-store/id\(YOURAPPID)?mt=8&action=write-review")!
    UIApplication.shared.openURL(url)
    

    对于iOS 10.3+,您可以使用带有简单对话框的SKStoreReviewController,并在警报样式窗口中选择分级。要使用它,您应该导入StoreKit库。所以,对你的应用程序进行内部评级的通用方法如下:

    import StoreKit
    
    func rateApp(){
       if #available(iOS 10.3, *) {
          SKStoreReviewController.requestReview()
       } else {
          guard let url = URL(string: "itms-apps://itunes.apple.com/ru/app/cosmeteria/id1270174484") else {
             return
          }
    
          if #available(iOS 10.0, *) {
             UIApplication.shared.open(url, options: [:], completionHandler: nil)
          } else {
             UIApplication.shared.openURL(url)
          }
       }
    }
    

    当你们尝试在模拟器中启动它时,你们将看不到应用商店窗口,所以在设备上尝试它,它就会工作。这种方式覆盖所有iOS版本,使用所有功能。您的应用程序地址“/us/app”中的路径部分表示您的应用程序商店本地化,例如“us”表示美国。您只需在任何浏览器中的应用程序商店中打开应用程序,即可在地址字符串中轻松找到您的应用程序id。要获取链接,只需在浏览器中复制地址。将“https://”更改为“itms apps://”可以让您在应用商店应用程序中打开应用程序,而“https”可以在Safari中打开网页,Swift 5.1:
    以下功能将用户直接发送到任何商店的评论部分,而不仅仅是美国商店:

    func rateApp(id : String) {
        guard let url = URL(string : "itms-apps://itunes.apple.com/app/id\(id)?mt=8&action=write-review") else { return }
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        } else {
            UIApplication.shared.openURL(url)
        }
    }
    
    用法:

    rateApp(id: "1287000522")
    

    重要提示:这在模拟器上不起作用!在真实设备上测试。

    此链接在应用商店中打开应用程序页面,然后显示写评论表

    itms-apps://itunes.apple.com/app/id[APP_ID]?action=write-review
    
    您可以在应用商店连接中的
    应用程序ID
    ,在您的应用程序的详细信息下找到苹果ID

    itms-apps://itunes.apple.com/app/id[APP_ID]?action=write-review
    

    如果您想直接撰写评论,而不仅仅是打开应用程序页面:

        if let url = URL(string: "https://itunes.apple.com/in/app/\(yourappname)/id\(yourAppleAppId)?ls=1&mt=8&action=write-review") {
           if #available(iOS 10.0, *) {
               UIApplication.shared.open(url, options: [:], completionHandler: nil)
           } else {
               // Earlier versions
               if UIApplication.shared.canOpenURL(url as URL) {
                  UIApplication.shared.openURL(url as URL)
               }
           }
        }
    

    以上所有答案都不是最佳实践,它们可能会影响你的应用商店评分。要获得最佳实践,请使用以下代码

    func ReviewAppController() {
        let alert = UIAlertController(title: "Feedback", message: "Are you enjoying our App?", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "Dismis", style: .cancel, handler: nil))
        alert.addAction(UIAlertAction(title: "Yes, i Love it!", style: .default, handler: {_ in
            SKStoreReviewController.requestReview()
        }))
        alert.addAction(UIAlertAction(title: "No, this sucks!", style: .default, handler: {_ in
            //Collect feedback
        }))
        present(alert, animated: true)
    }
    

    转到你的itunesconnect帐户->我的应用->点击“+”按钮->新建iOS应用->填写要求详细信息->填写完所有详细信息转到你的应用->点击更多按钮->查看应用商店->它会将你重定向到你的应用URL。这将是通用的,在你的应用上线后也会一样。非常感谢,所以我将把我的链接放在我放的地方“webLinkHere“它会正常工作吗?是的,它会将你重定向到你的应用程序,你应该向上投票我的答案我尝试了你的答案,但itunes说,你要求的商品目前在印度或美国商店@Krunal中没有Darji@amar仔细阅读问题这是我的链接,它说的是我们,所以现在我不知道它是否是通用的。你可以继续这样做,所以目前你还没有批准二进制。这就是为什么它的显示项不可用。应用程序ID的格式是:“id912873918273”或“912873918273”或“com.Companyname.Appname”?应用程序商店打开了,但它引发了一个错误:
    你的请求产生了一个错误。[newNullResponse]
    现在我只使用这个:UIApplication.sharedApplication().openURL(NSURL(字符串:)@MahmudAhsan链接末尾有一个自动完成错误,字符串中有一个额外的括号,不应该在这里,因为它是一个我无法编辑的字符。我在应用商店中有一个实时应用程序。上面的代码可以100%工作。我刚才已经测试过。对于那些正在寻找当前解决方案的人,这是:-)iOS 10上的防护似乎是不必要的?@YannickSteph如果你遵循指导原则,那么它就不是,应该使用if语句代替它。这是我在本文中使用Swift4的唯一一个有效方法,谢谢!苹果的文档正好说明了使用SKStoreReviewController.requestReview的情况。”尽管在应用程序的用户体验流中有意义时,您应该调用此方法,但评级/审核请求视图的实际显示受应用程序商店策略的控制。由于此方法可能会或可能不会显示警报,因此不适合在点击按钮或其他用户时调用此方法