現在、html ファイルを正常にロードする Web ビューがあります。これを行う方法は次のようになります。
- (EmailView *)loadHTMLIntoEmailView:(EmailView *)emailView
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"inlineAttachmentTemplate" ofType:@"html"];
NSData *htmlData = [NSData dataWithContentsOfFile:path];
NSString *resourceURL = [[NSBundle mainBundle] resourcePath];
resourceURL = [resourceURL stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
resourceURL = [resourceURL stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSURL *baseURL = [NSURL URLWithString:[NSString stringWithFormat:@"file:/%@//",resourceURL]];
[emailView.webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:baseURL];
return emailView;
}
私が持っているhtmlファイルは次のようになります:
<!doctype html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="inlineAttachmentTemplateStyling.css">
<script>
function myFunction()
{
document.write("Hello from my html file!!!!");
}
</script>
</head>
<body id="body">
<div id="container">
<img id="testImage" src="fauxImageAttachment2.JPG" />
</div><!-- #container -->
</body>
</html>
これは、画像が webview に表示されるという点で機能します。document.write を関数から取り出してスクリプト タグ内に直接配置すると、テキストが Web ビューに表示されます。ただし、Web ビューにテキストを表示できるようにする関数を (Objective C メソッドから) 呼び出す必要があり、最終的にはこの関数にいくつかの変数を渡す必要もあります。現時点では、javascript 関数を呼び出す方法さえわかりません。
この例を見ました。PhoneGap と iOS を使用して、(コールバックではなく) ネイティブ コードから JavaScript 関数を呼び出すことができますか? 、そして私の目的のCメソッドに次の行を追加しようとしました:
[emailView.webView stringByEvaluatingJavaScriptFromString:@"myFunction()"];
しかし、これは関数を呼び出しません...または少なくともテキストはwebviewに表示されません。
私はかなり初心者のプログラマーであり、JavaScript についてはまったく知りません。誰かが私が間違っていることを強調できますか?