3

いくつかの tvOS コードをテストしていますが、シミュレーターでは問題なく動作しますが、OS ベータ 2 を実行している開発キットでは次のエラーが発生します。

2015-09-27 11:10:29.797 RWDevCon[272:46267] SSSQLiteDatabase: データベースを開けませんでした。 -09-27 11:10:29.810 RWDevCon[272:46267] ITML: HTTP キャッシュを無視するための設定 [1] 2015-09-27 11:10:34.886 RWDevCon[272:46267] ITML: 設定 [3] ログレベル 2015 -09-27 11:10:34.887 RWDevCon[272:46267] ITML: エラーで起動 URL の読み込みに失敗しました: エラー Domain=NSURLErrorDomain Code=-1004 "Cannot connect to localhost" UserInfo={NSUnderlyingError=0x137d2dee0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 「サーバーに接続できませんでした。」UserInfo={ _kCFStreamErrorCodeKey=61、_kCFStreamErrorDomainKey=1、NSLocalizedDescription=サーバーに接続できませんでした。}}、NSErrorFailingURLStringKey=http://localhost:9001/js/application.js、_kCFStreamErrorDomainKey=1、_kCFStreamErrorCodeKey=61、NSLocalizedDescription=localhost に接続できません}

Swift コード: クラス AppDelegate: UIResponder、UIApplicationDelegate、TVApplicationControllerDelegate { var window: UIWindow?

var appController: TVApplicationController? /
static let TVBaseURL = "http:/
static let TVBootURL = "\(AppDelegate.TVBaseURL)js/application.js" /

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {

    window = UIWindow(frame: UIScreen.mainScreen().bounds)

    /
    let appControllerContext = TVApplicationControllerContext()

    /
    guard let javaScriptURL = NSURL(string: AppDelegate.TVBootURL) else {
        fatalError("unable to create NSURL")
    }

    appControllerContext.javaScriptApplicationURL = javaScriptURL
    appControllerContext.launchOptions["BASEURL"] = AppDelegate.TVBaseURL

    /
    appController = TVApplicationController(context: appControllerContext, window: window, delegate: self)

    return true
}

}

**JavaScript/server code:**
App.onLaunch = function(options) {

// 1 var alert = createAlert("tvOS プログラミングへようこそ", "それは素晴らしいものになるでしょう!"); // 2 番目のパラメーターを空の文字列のままにします。 navigationDocument.presentModal(alert); }

// 2
var createAlert = function(title, description) {

var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
<title>${title}</title>
<description>${description}</description>
<button><text>OK</text></button>
</alertTemplate>
</document>`

var parser = new DOMParser();
var alertDoc = parser.parseFromString(alertString, "application/xml");

return alertDoc

}

サーバーの起動:

python -m SimpleHTTPServer 9001

注意: 任意のロードを許可するが YES に設定されている

4

2 に答える 2

4

devkit はネットワーク上の別のコンピューターであり、キット自体で JSTVML サーバーをホストすることはできません。外部サーバーでホストする必要があります (この場合、開発マシンはその外部サーバーです)。

開発キットと開発用コンピューターが同じネットワーク上にあることを確認してください。

IP アドレスを指定して、コンピューターにアクセスするように js コードをセットアップします。

例:(開発サーバーのIPアドレスであり、ポートであるhttp://192.168.1.21:9001/js/application.jsふりをします。)192.168.1.219001

最初にブラウザーでアクセスして、これをテストできるはずです (開発用コンピューターが.jsファイルを正しく返すことを確認するため)。

「サーバー」が機能していることがわかったら、そのリモートの場所にアクセスするように JavaScript をセットアップします。

お役に立てれば。

于 2015-09-27T23:37:47.440 に答える
0

または Node.js を使用できます

始める前に。このドキュメントを確認する必要がありますhttps://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/YourFirstAppleTVApp.html#//apple_ref/doc/uid/TP40015241-CH3-SW1

2番。あなたに必要なものは何でも。このリンクの下にテンプレート プロジェクトがあります。 https://developer.apple.com/library/prerelease/tvos/samplecode/TVMLCatalog/Introduction/Intro.html

Node.js

  1. このプロジェクトのテンプレート デスクトップをコピーします。
  2. コマンド + スペース | ターミナルを開く
  3. sudo npm install http-server -g
  4. cd /Users/"yourusername"/Desktop/tvOS/TVMLCatalogUsingTVMLTemplates
  5. http サーバー -p 7575

わかりました AppDelegate.swift ファイルを更新する必要があります。

**static let TVBaseURL = "http://localhost:7575/"**
于 2015-12-01T17:17:12.437 に答える