2012-05-15 4 views
0

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

Идея заключается в том, что мое приложение для Android загружается (и позже будет поддерживаться iOS), веб-сайт, на котором я загружаю его в webview. Однако на одной из веб-страниц есть один элемент id = «LaunchNativeApp», который, когда получен onClick, я хочу запустить намерение сканера штрих-кода из моего родного приложения. Как мне это сделать?

Прецедент для этого:

  1. Пользователь запускает родную приложение для Android

  2. Родные андроид приложения нагрузки www.mywebsiteaddress.co.uk

  3. Пользователь переходит www.mywebsiteaddress. co.uk и заходит на страницу www.mywebsiteaddress.co.uk/inputDetails

  4. Пользователь нажимает на текст inp поле ет

  5. Native Android App нагрузка камера

  6. Пользователь считывает штрих-код

  7. Штрих-код вставляются в поле ввода текста

  8. пункт Списка

Шаги 1 до 3 I может сделать, с 4 по 8 Мне нужны некоторые советы, любые идеи, если это возможно?

Большое спасибо

ответ

0

На вашей веб-странице, вы можете реализовать код яваскрипта, подобный на шаге 4:

window.location = 'MYAPP: // сообщения пары = X & param2 = Y';

Затем в WebView, вы бы реализацию WebViewClient shouldOverrideUrlLoading:

mWebView.setWebViewClient(new WebViewClient() 
{ 

    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 


     // handle myApp links 
     if (url.startsWith("myApp")) 
     { 
      try 
      { 
       java.net.URI uri = new java.net.URI(url); 

       // MESSAGE 
       if (uri.getHost().equalsIgnoreCase("message")) 
       { 
          // do something here...(e.g. load Camera activity) 
       } 

      } 
      catch (Exception e) 
      { 
      } 

      return (true); 
     } 

     return (false); 
    } 

}); 

Вы хотите «ловушка» на JavaScript звонки в вашем родном коде и реагировать на них (например, загрузить деятельность камеры и т.д.).

Вы могли бы возвращать результат обратно в WebView путем обратного вызова в страницу DOM

String str = String.format("javascript:{your javascript code here}"); 
mWebView.loadUrl(str); 
2

Вы также можете использовать addJavascriptInterface (Object, String), поэтому вы можете вызывать методы объекта Java с JavaScript. Вам не нужно ставить скрипты на серверной стороне страницы, достаточно ввести некоторый javascript, вызвав mWebView.loadUrl («javascript: {ваш код javascript здесь}»); если вы знаете HTML-элементы на странице.

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