小编Pau*_*aul的帖子

HTML5网络应用程序在iOS中添加到主屏幕时不缓存

要明确的是,Web应用程序正在缓存,并且在Mobile Safari中可以正常脱机工作.

问题是它被添加到iPhone 4s和iPad 2的主屏幕上,两者都运行iOS 6.0.1.它将无法脱机工作并且在连接到互联网时出现网络错误,即"无法打开MYWEBAPP.由于未连接到互联网,因此无法打开MYWEBAPP"

我已经调试了几个小时,似乎无法找到解决方案.我没有收到控制台中的任何错误,我正在运行Jonathan Stark的调试代码

我已经在桌面Safari,Chrome和Firefox的在线/离线开发者工具中测试了该应用.以及Safari中使用设备的Web Inspector.iPhone或iPad上的结果相同.它们将缓存Web应用程序并将在Mobile Safari中运行,但在添加到主屏幕时则不会.离线或在线都没有错误.

据我所知,我正在使用最佳实践:

  1. 添加了HTML标头: <html manifest="photo.appcache">

    我还尝试使用清单文件的不同名称,包括:cache.manifest和offline.manifest,因为我读到它有所不同,但在我的测试中,只要扩展名是什么名称并不重要. manifest或.appcache,并在.htaccess文件中正确提供.

  2. 添加了正确的MIME类型: AddType text/cache-manifest appcache manifest

    我也试过:AddType text/cache.manifest manifest, AddType text/cache.manifest .manifest manifest,AddType text/cache-manifest .manifest

    我不相信这有效:AddType text/cache.manifest 但我不记得了.在大多数情况下它没关系,我坚持:

    AddType text/cache-manifest appcache清单

    就像HTML5 Mobile Boilerplate中的内容一样.

  3. 添加:

网络:*

到appcache文件.我相信这允许下载所有内容以及使所有链接都能正常工作.

  1. 我已经尝试删除这一行: <meta name="apple-mobile-web-app-capable" content="yes"> 因为我在这里阅读了解决了类似于我的问题,但我可以确认它在我的测试中不起作用.按主屏幕图标时删除此行或将内容设置为"否"将重定向到Mobile Safari而不是全屏打开.

我已经把它缩小到它是iOS 6中的一个错误(我实际上使用的是iOS 6.0.1),因为我知道现在已经将数据分离为浏览器中的Web应用程序和添加到主屏幕的数据.我在这里发布这个问题,看看是否有其他开发人员遇到了同样的问题.

web-applications manifest mobile-safari offline-caching ios

15
推荐指数
1
解决办法
1万
查看次数

收集硬币并添加到Sprite Kit中的得分标签

我正在尝试使用本教程作为参考在我的游戏中实现一个简单的评分系统:

http://www.raywenderlich.com/87232/make-game-like-mega-jump-sprite-kit-swift-part-2

问题是,如果我尝试按原样实现,它会在此行的GameScene.swift中崩溃:

 let another = whichNode as! GameObjectNode
Run Code Online (Sandbox Code Playgroud)

以下是玩家收集硬币的代码的主要部分.如果你想更接近和更好看,我也可以邀请你到我的回购.我知道从我在这里粘贴的代码看起来很难.

GameObjectNode.swift:

enum CoinType: Int {
  case Normal = 0
  case Special
}

struct CollisionCategoryBitmask {

  static let Player: UInt32 = 0x00
  static let Coin: UInt32 = 0x01
  static let Platform: UInt32 = 0x02
}

class GameObjectNode: SKNode {

func collisionWithPlayer(player: SKNode) -> Bool {
    return false
}

func checkNodeRemoval(playerY: CGFloat) {
    if playerY > self.position.y + 300.0 {
        self.removeFromParent()
    }
  }
}

class CoinNode: GameObjectNode {

let coinSound = SKAction.playSoundFileNamed("StarPing.wav", …
Run Code Online (Sandbox Code Playgroud)

game-development ios sprite-kit swift

6
推荐指数
1
解决办法
1106
查看次数

tvOS的游戏中心没有出现

我目前在我的iOS目标中使用Game Center,但没有在tvOS目标中工作.

我已经添加了Leaderboard图像并将标识符放在Xcode中:

在此输入图像描述

这是我用来调出排行榜并启动播放器的课程.它叫做GameKitHelper.swift:

import UIKit
import Foundation
import GameKit

let PresentAuthenticationViewController = "PresentAuthenticationViewController"

class GameKitHelper: NSObject {

  static let sharedInstance = GameKitHelper()


  var authenticationViewController: UIViewController?
  var gameCenterEnabled = false

  func authenticateLocalPlayer() {

    //1
    let localPlayer = GKLocalPlayer()
    localPlayer.authenticateHandler = {(viewController, error) in

        if viewController != nil {
            //2
            self.authenticationViewController = viewController

                 NSNotificationCenter.defaultCenter().postNotificationName(PresentAuthenticationViewController, object: self)
        } 
    else if error == nil {
            //3
            self.gameCenterEnabled = true
        }
    }

 }

 func reportAchievements(achievements: [GKAchievement], errorHandler: ((NSError?)->Void)? = nil) {
    guard gameCenterEnabled else …
Run Code Online (Sandbox Code Playgroud)

game-center sprite-kit swift tvos

5
推荐指数
1
解决办法
295
查看次数

NSArray objectAtIndex索引0超出空数组的边界

我正在研究别人的应用程序而且我收到了这个错误:

'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 
 beyond bounds for empty array'
Run Code Online (Sandbox Code Playgroud)

Xcode指向这一行:

 NSDictionary *geo = [response[0] objectForKey:@"geometry"];
Run Code Online (Sandbox Code Playgroud)

这是完整的方法:

- (void)loadLatLong {

indx ++;
if (indx == [datalist count]) {
    [self showMarker];
//        self.alertView.hidden = true;
//        [self setThreeQuarters];
    [self.progressbar setProgress:1.0 animated:YES];
    return;
}
PointClass *pt = datalist[indx];
NSString *stPt = [pt.Location stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *str = [stPt stringByReplacingOccurrencesOfString:@" " withString:@"+"];
NSString *url = [NSString stringWithFormat:@"https://maps.google.com/maps/api/geocode/json?address=%@&sensor=false&key=AIzaSyAoSBH8mBmeVp2HVx6vJrkTvl3bjRFiWag",str];

NSURL *urlString = [NSURL URLWithString:url];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

manager.responseSerializer = [AFJSONResponseSerializer serializer]; …
Run Code Online (Sandbox Code Playgroud)

arrays objective-c ios ios8

3
推荐指数
1
解决办法
1万
查看次数

使用 ScrollTo jQuery 插件提交表单后滚动到错误和成功消息

到目前为止,我仅针对错误消息正常工作。但是,我希望这也适用于成功消息。当按下联系表单中的提交按钮时,就会发生这种情况。单击页面右上角的联系人即可滚动到该联系人。

您可以在这里进行测试。

这是我用于错误消息的 jQuery:

     $(document).ready(function() {
     $(".error:first").attr("id","errors");
    $("#errors").each(function (){
        $("html,body").animate({scrollTop:$('#errors').offset().top-175}, 1000);
    });
  });
Run Code Online (Sandbox Code Playgroud)

有什么方法可以修改它以使用相同的 offset().top-175 滚动到 #success 和 #errors 吗?

提前致谢!

javascript forms error-handling jquery scrollto

2
推荐指数
1
解决办法
6623
查看次数

在Sprite Kit中创建HUD,在屏幕上保持静态

我试图在本教程的跳转游戏中创建一个静态HUD,它在整个游戏中保持在屏幕顶部.我还是Swift的新手,所以也许这是一个我不容易看到的惯例:

http://www.raywenderlich.com/87232/make-game-like-mega-jump-sprite-kit-swift-part-2

在教程中,他将HUD放在override init(size: CGSize)函数中:

 required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
  }

 override init(size: CGSize) {
      super.init(size: size)
    ...

   // Build the HUD

   // HUD
   hudNode = SKNode()
   hudNode.zPosition = 1000
   addChild(hudNode)


   // Coins
   // 1
   let coin = SKSpriteNode(imageNamed: "powerup05_1")
   coin.position = CGPoint(x: 300, y: self.size.height-100)
   coin.zPosition = 1000
   hudNode.addChild(coin)

  // 2
  lblCoins = SKLabelNode(fontNamed: "ChalkboardSE-Bold")
  lblCoins.fontSize = 70
  lblCoins.fontColor = SKColor.whiteColor()
  lblCoins.position = CGPoint(x: 375, y: self.size.height-100)
  lblCoins.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Left
  lblCoins.zPosition = 1000

  // 3 …
Run Code Online (Sandbox Code Playgroud)

ios 2d-games sprite-kit swift

2
推荐指数
1
解决办法
1521
查看次数