2017-07-26 9 views
0

モバイルビューでは、ウェブビューからアクセスできる新しい機能を設計しています。ユーザーがアプリのメニューから新しいビューをタップするとバックボタンを使用した場合にオートコンプリート結果を残す

、Web表示は、名前でアイテムのコレクションを検索するために単一のテキスト入力と検索フォームを含むページを示す、開いてしまいます。

このフィールドには、新しいメールメッセージを作成するときのGmailアプリのユーザーの連絡先からの電子メールアドレスを自動的に完了する方法と同様の方法で自動完了となります。我々の場合には

、ユーザーが自動終了した結果の1つを選択、Web表示は、選択された結果の詳細をロードします。

私が質問したことは、ユーザーが戻るボタンを押すと、前のページに戻りますが、オートコンプリートの提案はまだ有効ですです。

編集1

私の質問の目標は、これは何か他のものと組み合わせたWebコンポーネントなどの標準的な技術で達成することが可能かどうかを確認することである、または作業実装がすでに存在する場合はコンポーネントのコレクションで提供。

もしそうでなければ、私はGIJOWが提案した行に沿ったアプローチを想像することができます。

答えて

0

あなたは入力内容を取得し、変数に格納することができます

<html> 
    <body> 
     <input id="query" type="text" value="My query text"/> 
    </body> 
</html> 

スウィフト

let myValue = webView.stringByEvaluatingJavaScriptFromString("document.getElementById('myId').value") 

そして、あなたは、例えば、再びビューコントローラの負荷にあれば設定した後:

<form> 
Query <input type="text" id="query" name="Query" width="20"/> 
</form> 
をスウィフトは

-

func webViewDidFinishLoad(webView: UIWebView!) { 
let html = String(format: "%@%@%@", "document.getElementById('query').value = ", myValue, ";") 
self.wbView.stringByEvaluatingJavaScriptFromString(html) 
} 

それとも、また結果を維持したい場合は、あなたが入力されたテキストを保存して、もう一度ページをロードする際にクエリ文字列で渡すことができます。

+0

私が正しいんだ場合は、アイデアは、一度戻って、アクションを経由して再読み込みページでそれを(iOSの場合のスウィフトを使用して)WebViewの側に結果を保存し、再注入することです。 しかし、私の質問は、既存のソリューションをWebコンポーネントなどとして発見することを目的としています。私は今質問を明らかにするつもりです – Cec

+0

それから私は知らないけど、この場合、モバイル側のタグを削除する必要があります。このケースではモバイルには何もしません。 – GIJOW

+0

webviewはフルウェブブラウザでアクセス可能なすべてのプラットフォーム機能を提供しているかどうかわからないので、モバイルタグを残しています。 Swiftを介してやってみたいことに似たアプローチで使用できるHTML5ローカルストレージ – Cec

関連する問題