0

私はiPhone用のアプリを作成しており、UIWebViewに埋め込まれたYouTubeを作成するためにJavascriptを使用しています。javascript からいくつかのイベントでファイルを開いたり、読み書きしたり、そのファイルを目的の c コードで使用したりしたいと考えています。しかし、どうすればこれを行うことができますか? ファイルを保存して開くことができる場所を意味します。

youtubeAPI.html というファイルを作成し、このファイルを Objective-C コードから呼び出しています。ページが正常に開きます。今、私はファイルを開いて、それが状態を変更するたびに何かを書きたいと思っています。そして、objective-c からの最終結果でそのファイルを表示する必要があります。どうすればこれができるか教えてください。

<!DOCTYPE HTML>
<html>
<body>
<div id="player"></div>
<script>
    //Load player api asynchronously.
    var tag = document.createElement('script');
    tag.src = "http://www.youtube.com/player_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    var done = false;
    var player;
    function onYouTubePlayerAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: 'JW5meKfy3fY',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
    }
    function onPlayerReady(evt) {
        evt.target.playVideo();
    }
    function onPlayerStateChange(evt) {
        if (evt.data == YT.PlayerState.PLAYING && !done) { // NEED TO ADD FILE OPERATION HERE
            setTimeout(stopVideo, 6000);
            done = true;
        }
    }
    function stopVideo() {
        player.stopVideo();
    }
</script>
</body>
</html>

ありがとうあかんしゃ

4

2 に答える 2

1
// Get file path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString filePath = [documentsDirectory stringByAppendingPathComponent:filename];

// Read file contents
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

// Write file contents
[[content dataUsingEncoding:NSUTF8StringEncoding] writeToFile:filePath atomically:NO];
于 2012-04-17T05:56:17.340 に答える
0

UIWebView はサンドボックスです。これを行う機会はありません。javascript はファイル システムに直接アクセスできません。これは私が知っていることです。しかし、あなたは他のことをすることができます。最初: 状態をウィンドウ オブジェクトに保存します。

such as window.state = "someting";

2 番目: Objective-C で状態を読み取ります。

NSString *state = [webView stringByEvaluatingJavaScriptFromString:@"window.state"];
于 2012-04-17T07:17:22.947 に答える