2012-05-15 47 views
0

我想實現一些東西,我有一個簡單的本地應用程序,包含一個webview和一個網站,我寫在網上託管。Android,通過webview啓動意圖

這個想法是,我的Android應用程序加載(以及後來的iOS將支持以及),我把它加載到web視圖的網站。但是,其中一個網頁上有一個元素,id =「LaunchNativeApp」,當收到onClick時,我想從我的本機應用程序啓動條形碼掃描器。我如何去做這件事?

一個用例是:

  1. 用戶推出原生Android應用

  2. 原生Android應用程序加載www.mywebsiteaddress.co.uk

  3. 用戶導航www.mywebsiteaddress。 co.uk並進入頁面www.mywebsiteaddress.co.uk/inputDetails

  4. 用戶單擊文本inp UT域

  5. 原生Android應用程序加載時相機

  6. 用戶讀取條碼

  7. 條碼插入文本輸入字段

  8. 列表項

步驟1到3我可以做,4到8我需要一些建議,如果這是可能的任何想法?

非常感謝

回答

0

在你的網頁,你可以在第4步實施類似於JavaScript代碼:

了window.location = '?對myApp://消息PARAM = X &參數2 = 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調用,並作出迴應(例如加載攝像機活動等)。

然後,您可以通過調用返回到頁面的DOM

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

您還可以使用addJavascriptInterface(對象,字符串),所以你可以調用Java對象的方法,從JavaScript結果返回到您的WebView。您不需要將腳本放在頁面服務器端,通過調用mWebView.loadUrl(「javascript:{your javascript code here}」)來注入一些javascript就足夠了。如果你知道頁面中的HTML元素。