0

JavaScript を UIWebView に読み込もうとしています。以下は私のコードです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webview loadRequest:request];
}

-(void)webViewDidFinishLoad:(UIWebView *)webView{

    NSString *javascript = [[NSString alloc] initWithContentsOfFile:@"script.js" encoding:NSUTF8StringEncoding error:nil];
    [webView stringByEvaluatingJavaScriptFromString:javascript];
}

ここで何か間違ったことをしていますか?Web ビューの読み込みが終了したので、Javascript に何か問題があると思います。

4

2 に答える 2

0

あなたの質問を正しく理解できれば、あなたは JavaScript を UIWebView にロードしようとしています。[UIWebView stringByEvaluatingJavaScriptFromString] は、UIWebView に既に読み込まれている関数を実行するために使用されます。

script.js をローカルの index.html ファイルに含めてから、[UIWebView stringByEvaluatingJavaScriptFromString] を使用して script.js で定義された関数を呼び出さないのはなぜですか?

あなたの質問を誤解した場合はお知らせください。

于 2012-08-03T20:54:08.123 に答える
0

こんにちは!!

これが私の答えです。私の作業コードです。プロジェクト ワークスペースに JSLibraries 物理フォルダーを作成します。それをプロジェクトに追加します。abc.js ファイルをそこにコピーします。

 - (void) addJSLibraryToHTML
{
    NSURL *jqueryLibPath =[[NSBundle mainBundle] URLForResource:@"abc" withExtension:@"js" subdirectory:@"/JSLibraries" ];
    NSString *offlineJqueryLib = [NSString stringWithFormat:@"function addJquery()"
                                  "{"
                                  "function loadScript(url, callback)"
                                  "{"
                                  "var script = document.createElement('script');"
                                  "script.type = 'text/javascript';"
                                  "script.onload = function () {"
                                  "callback();"
                                  "};"
                                  "script.src = url;"
                                  "(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);"
                                  "}"
                                  "if(window.jQuery===undefined)"
                                  "{"
                                  "loadScript('%@', function ()"
                                  "{"
                                  "//do call back to your native method from here"
                                  "});"
                                  "}"
                                  "} ; addJquery();",jqueryLibPath.absoluteString];
    [self stringByEvaluatingJavaScriptFromString:offlineJqueryLib];
}
于 2014-08-13T12:52:32.743 に答える