2016-07-17 2 views
0

Я создаю приложение для Android и мне нужно направить пользователя на URL-адрес, который после загрузки просит пользователя заполнить форму и отправить. Теперь из ссылки разработчика Android я получил это, чтобы прочитать о WebViews:Можно ли использовать веб-представление, чтобы открыть страницу для пользователя, чтобы заполнить ее и отправить форму?

«По умолчанию WebView не предоставляет виджетов, подобных браузерам, не включает JavaScript, а ошибки веб-страницы игнорируются. Если ваша цель состоит в том, чтобы отображать некоторые HTML как часть вашего пользовательского интерфейса, это, вероятно, прекрасно, пользователю не нужно будет взаимодействовать с веб-страницей, кроме его чтения, и веб-странице не нужно будет взаимодействовать с пользователем. Если вы действительно хотите полностью , вы, вероятно, захотите вызвать приложение «Браузер» с использованием URL-адреса, а не показывать его с помощью WebView. «

Означает ли это, что я не могу использовать веб-представление в этом случае, и мне нужно открыть браузер через намерение?

+0

Попробуйте это. http://stackoverflow.com/a/30131309/4685284 –

+0

Я хочу знать, нужно ли мне открывать браузер с помощью намерения или я должен открыть webView? –

+0

Используйте этот код для своего веб-просмотра. Он поддерживает javascript. Следовательно, ваши действия и другие клиентские события должны работать. –

ответ

0

Вы можете использовать webview как браузер, если вы открываете веб-страницу в мобильном браузере, когда вы посещаете свой сайт на мобильном телефоне, веб-просмотр также дает вам такое же чувство.

есть некоторые ограничения в webview, но для вашей проблемы я думаю, что она будет работать идеально, но убедитесь, что ваш сайт поддерживает мобильный формат. иначе он не будет выглядеть хорошо.

0

Вы можете использовать WebView с формой и перехват почтовых данных, как показано ниже:

  1. Создание HTML-форм

  2. Использование Javascript и привязать его к андроида код для перехвата данных формы:

Включить Javascript:

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 

Связывание кода JavaScript в Android код:

создать яваскрипта класс интерфейса:

public class WebAppInterface { 
    Context mContext; 

    /** Instantiate the interface and set the context */ 
    WebAppInterface(Context c) { 
     mContext = c; 
    } 

    /** Show a toast from the web page */ 
    @JavascriptInterface 
    public void showToast(String name , String email) { 
     Toast.makeText(mContext, String.format("Name:%s - Email:%s",name,email), Toast.LENGTH_SHORT).show(); 
    } 
} 

Вы можете связать этот класс с JavaScript, что работает в вашем WebView с addJavascriptInterface() и назовите интерфейс Android.Например:

WebView webView = (WebView) findViewById(R.id.webview); 
webView.addJavascriptInterface(new WebAppInterface(this), "Android"); 

HTML и JavaScript, который создает сообщение тоста с помощью нового интерфейса, когда пользователь нажимает кнопку отправки:

<script type="text/javascript"> 
    document.forms["frmSubmit"].onsubmit = function(){ 
    var name = document.getElementById("name").value; 
    var email = document.getElementById("email").value; 
    Android.showToast(name,email); 
    } 
</script> 

Ссылки:

https://developer.android.com/guide/webapps/webview.html#UsingJavaScript

How to intercept POST data in an android webview

Android, Webview, get submitted form data

Android - how to intercept a form POST in android WebViewClient on API level 4

Смежные вопросы