12

JQuery MobileとiPadアプリで発生しているこの問題を解決するために、何時間も解決策を探し、さまざまなアプローチを試した後、ここに来ました。

私がやろうとしているのは、FusionChartsを備えたレポートアプリです。さまざまな方法を使用し、さまざまな例に従ってWebビュー(UIWebView)内でグラフを正常にレンダリングしましたが、ここで実行したいのは、JQueryMobileフレームワークを使用して同じタスクを実行することです。

私はphonegapを使用しておらず、JQuery Mobile + Xcodeの統合に関する手紙の手順に従いました(私は思います)。チャートはデスクトップおよびモバイルブラウザ(iPad、iPhone 4、およびiPod Touch 2G)で問題なくロードされますが、UIWebView内でロードする方法はありません(まったく同じコードを使用している場合でも)。

これは私がしていることです:

1)必要なファイル(JS、CSS、およびHTML)をプロジェクトに追加して、それらをローカルで使用します。それらを追加した後、拡張子が.jsのすべてのものを「ソースのコンパイル」から「バンドルリソースのコピー」に移動します。次のようになります。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

2)HTMLテストファイル(page_A1.html)をWebビューにロードします。

ここに画像の説明を入力してください

3)すべてが正しいパスと最新バージョンのフレームワークを使用してHTMLファイルに設定されていることを確認します。

ここに画像の説明を入力してください

4)空白のWebビューを取得するためにのみ、ビルドして実行します。

次のようなアラートでJavascriptをテストすると、次のようになります。

ここに画像の説明を入力してください

Javascriptが機能していることを証明するアラートが表示されます。

ここに画像の説明を入力してください

そして、チャートが表示されるはずのコンテナにテキストを置くと、次のようになります。

ここに画像の説明を入力してください

Webビュー内にテキストを取得します。

ここに画像の説明を入力してください

また、ローカルリンクと古いバージョンのライブラリの代わりにリモートフレームワークリンクを使用してテストしましたが、運がありませんでした。何も変わりません:

ここに画像の説明を入力してください

それは私には明白に思えます

$(document).ready(function(){

xcodeによって認識または呼び出されていません。

これが私が達成したいことです:

ここに画像の説明を入力してください

他に何をテストすればいいのかわかりません。何かアイデアがあれば、私は感謝します。

4

2 に答える 2

10

みんな気にしないで。やっと手に入れました。

Web 開発時代の古い習慣が、ここで私を悩ませました。

CSS および JS ファイルの内部ディレクトリ構造を指定する必要がないことがわかったので、次のようにします。

<link rel="stylesheet" href="css/jquery.mobile-1.1.0.min.css" />

<script src="js/jquery-1.7.2.min.js"></script>

<script src="js/jquery.mobile-1.1.0.min.js"></script>

Xcodeでは、実際には次のようにする必要があります。

<link rel="stylesheet" href="jquery.mobile-1.1.0.min.css" />

<script src="jquery-1.7.2.min.js"></script>

<script src="jquery.mobile-1.1.0.min.js"></script>

それを見つけるのにどれだけの時間がかかったのか、信じられないほどです。

今、それは働いています。

于 2012-05-01T12:18:44.753 に答える
4

これを行う正しい方法は、JS ファイルを String としてロードし、UIWebView の [stringByEvaluatingJavascriptFromString:@"Javascript here..."] メソッドを呼び出すことです。

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"content" ofType:@"js" inDirectory:@""];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSString *jsString = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];

[webView stringByEvaluatingJavaScriptFromString:jsString];

これは、それらを html ファイルにハードコーディングする場合と大差ありませんが、さらにモジュール化します。ハッピーコーディング:)

于 2012-08-07T20:37:36.287 に答える