2011-04-27 44 views
9

我可以在webview中打開安卓相機嗎?我可以在webview中打開相機嗎?

+0

[從活動通話的攝像頭,拍攝圖像,並上傳到服務器]的可能重複(http://stackoverflow.com/questions/10679571工作的鏈接/調用相機從一個活動捕獲的圖像和上傳到服務器) – 2012-10-18 19:49:47

回答

7

使用Webview時最簡單的方法是使用Intent。

如果你使用API​​,你必須自己構建大量的UI。這取決於您在應用程序中需要做什麼以及您在「拍照過程」中需要多少控制。如果您只需要快速拍照並在應用程序中使用它,Intent就是要走的路。

意圖舉例:

private Uri picUri; 
private void picture() 
{ 
    Intent cameraIntent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    File photo = new File(Environment.getExternalStorageDirectory(), "pic.jpg"); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); 
    picUri = Uri.fromFile(photo); 
    startActivityForResult(cameraIntent, TAKE_PICTURE); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode){ 
     case TAKE_PICTURE: 
      if(resultCode == Activity.RESULT_OK){ 
       Uri mypic = picUri; 
       //Do something with the image. 
      } 
} 

我借這個例子中的部分從另一個答案,原來建立這個。但是我沒有URL了。

在我現在寫的應用程序中,我將該圖像轉換爲Base64,然後將其傳遞給Javascript,然後將其發佈到我的服務器。但是,這可能比你需要知道的要多。 :)

here是讓它在web視圖

+0

喬納森,你會怎麼稱呼這從webview? – 2011-04-29 19:29:10

+1

@David Souther 我不確定你的意思是來自Android側的Webview還是瀏覽器端。在Android方面,您可以像調用其他任何Java方法一樣調用它。 如果您想從Javascript調用它,請讓用戶單擊標記並打開相機,然後您可以編寫一個充當界面的Java類。添加類如下: _webview_.addJavascriptInterface(new JavaScriptInterface(this),「Android」);在JS中,你會這樣稱呼它: Android._method_(); – Jonathan 2011-04-29 19:31:44

+0

@David Souther 對不起,下劃線。想要斜體,直到編輯時間結束才知道。我是新的。 :S 順便說一句,這個鏈接解釋JS接口更好: http://developer.android.com/guide/webapps/webview.html#BindingJavaScript – Jonathan 2011-04-29 19:38:34

1

據我所知,這不是直接嵌入到Android API中的。但是,您可以使用PhoneGap,它將JavaScript掛鉤提供給本機設備功能(即相機)。

您可以查看支持的功能列表here,並閱讀其Camera API文檔here

相關問題