0

一部の Android コードを iPhone に移植する際に 2 つの問題があります。まず、LoadDataWithBaseURL に沿ったものが必要です。問題はこれです。コードでは、Web ページを生成します。ページは Javascript でいくつかのファンキーなことを行い、世界は良いです。ドロイドで正常に動作し、生成し、webview のアクティビティに送信してから、LoadDataWithBaseURL を使用します。

残念ながら、iPhone では初めて動作します。ページに何かを追加して再送信すると、リストの最初に表示されるものだけが表示されます。これは LoadHtmlString です。

string contentDirectoryPath = Path.Combine (NSBundle.MainBundle.BundlePath, "Content/");
        this.BeginInvokeOnMainThread (delegate {
            this.webView.LoadHtmlString (myGeneratedPage, new NSUrl (contentDirectoryPath, true));
        });

似ていると思われる LoadData というモノタッチ メソッドがありますが、NSData データが Android アプリの文字列データと同じかどうかはわかりません。

より簡単な解決策は、キャッシュをクリアすることかもしれません...しかし、繰り返しますが、方法がわからず、アプリのキャッシュまたはサファリのキャッシュを実行する必要があるかどうかがわかりません。

私は周りを見回して解決策がありますが、それは客観的なCであり、モノタッチではありません。Java から C# とは異なり、obj-c には触れていないので、どこから始めればよいかわかりません。

これらに関するヘルプは大歓迎です

PFJ

4

2 に答える 2

3

私が取り組んでいるiPhoneモノタッチプロジェクトでキャッシュを扱ってきました。

あなたのより簡単な解決策に関して、アプリケーションキャッシュをクリアするには、私はこれを行います:

NSUrlCache cache = NSUrlCache.SharedCache;
cache.RemoveAllCachedResponses();

SharedCache という名前は、アプリケーション間キャッシュであることを示しているようですが、Safari のキャッシュをクリアしてもアプリケーションのキャッシュには影響しないことがわかりました。iPhone の Plus アプリはサンドボックス化されているため、Safari のキャッシュをクリアできるとは思えません。

私の iPhone シミュレーターでの経験から、この行NSUrlCace.SharedCacheがアプリケーションのキャッシュを作成することがわかりました。これは、Mac の次のフォルダーに移動すると表示されます。

Library/ApplicationSupport/iPhone Simulator/6.0/<your app id>/Library/Caches/

パッケージ名のフォルダーと、その中に「Cache.db」という名前のファイルがあるはずです。この場所にこのファイルが存在することは、それがアプリケーションのキャッシュであるという事実をさらに裏付けていると思うので、安全にクリアする必要があります。

MonoTouch の Web サイトには、NSUrlCache とそれらのメソッドの実装方法に関するドキュメントがあまりないため、これが私が解決できる最善の方法です。

問題を解決するためにキャッシュのクリアを使用する方法が見つかることを願っています。

于 2012-10-24T15:06:29.027 に答える
0

LoadData へのパラメーターは、HTML コンテンツを含む NSData です。

于 2012-10-21T15:32:19.553 に答える