1

*編集* 私はさらに調査を行いましたが、Cookieも答えのようです。埋め込まれたhtml内のフォームに、値のCookieを作成する関数を呼び出すボタンを追加すると思います。次に、stringByEvaluatingJavaScriptFromStringメソッドを使用してobj-cからこのCookieにアクセスできます。もちろん、その後、有効期限の問題、フォームの複数のコピーが許可されないなどの問題が発生します。したがって、これは機能のトレードオフです。これをDBに保存して、ユーザーが同じ形式の別のインスタンスを作成できるため、window.locationルートを使用します *編集*

私はいくつかの研究を行い、これを達成する方法について漠然とした考えを持っていますが、より良い方法があるかどうか興味がありました。

開発中のこのiPadアプリのUIWebViewにhtmlフォームのローカルコピーを読み込んでいます。フォームはxmlを介してサーバー側に送信され、そこでDBストレージ用に解析されますが、残念ながら、フォームはかなり長くなります。そのため、ユーザーがフォームを現在の状態で保存し(おそらく、途中でしか入力しないようにします)、後でフォームに戻るようにします。

私が考えているのは、フォームのラジオボタンとチェックボックスを解析するためにJavaScriptを記述し、このデータをwindow.locationトリックを介してobj-cコードに渡す必要があるということです。しかし、これは非常に長く、JSとObj-Cの間を行き来する文字列は非常に長くなります。これらのチェックボックス/ラジオボタンの値を取得し、後で再入力するためにそれらをobj-c側に渡す他の方法はありますか?

4

1 に答える 1

1

ファイルを経由するのはどうですか?設定/データをJSのファイルに保存し、Objective-Cランドのそのファイルにアクセスします。しかし、私はあなたがすでにこれについて考えていると思います。

しかし、結局のところ、データは、どのように実行するかに関係なく、前後に渡される必要があります。window.locationトリックを介してそれを行うのが最速であり、OS自体によって課せられる制限がない場合、この方法でそれを行わない理由はありますか?

データをblobにエンコードして、受け渡しを容易にすることができます。

ただし、一方で、アプリが終了した場合でも設定を保持したい場合は、ファイルルートで実行すると便利な場合があります。

また、実際にフォームデータを送信することもできますが、NSURLProtocol派生クラスを使用して送信する前にObjective-Cでインターセプトします。NSURLProtocolクラスは、データが完全であることがわかっている場合、送信を続行できるようにすることができます。しかし、window.locationにサイズ制限がない場合、これを行う意味はありません。

于 2012-05-24T20:17:16.490 に答える