1. 程式人生 > >H5 呼叫android原生相機程式碼分析

H5 呼叫android原生相機程式碼分析

H5 頁面在webView中呼叫原聲相機:

H5 端的程式碼:如下:

<input id="upload" type="file" accept="image/*;" capture="camera" >    //文字輸入框;

android端的程式碼:

webView.setWebChromeClient(newLiuyyWebChromeClient(this));

這裡的 LiuyyWebChromeClient是自定義的 WebChromeClient物件;

下面貼一下LiuyyWebChromeClient類的程式碼

/**
 * 作用: {1, 自定的實現webView
拍照上傳的工具類} * 作者:liuyiyuan * 日期:2016/11/10 10:48 * 郵箱:[email protected] * weixin: Dkalan */ public class LiuyyWebChromeClient extends WebChromeClient { public interface OpenFileChooserCallBack { void openFileChooserCallBack(ValueCallback<Uri> uploadMsg, String acceptType); void
openFileChooserCallBackAndroid5(ValueCallback<Uri[]> uploadMsg, String acceptType); } private OpenFileChooserCallBack mOpenFileChooserCallBack; //選擇圖片回撥介面 public LiuyyWebChromeClient(OpenFileChooserCallBack mOpenFileChooserCallBack) { this.mOpenFileChooserCallBack=mOpenFileChooserCallBack; } //For Android 3.0+
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) { mOpenFileChooserCallBack.openFileChooserCallBack(uploadMsg, acceptType); } // For Android < 3.0 public void openFileChooser(ValueCallback<Uri> uploadMsg) { openFileChooser(uploadMsg, ""); } // For Android > 4.1.1 public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) { openFileChooser(uploadMsg, acceptType); } // For Android > 5.0 @Override public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> uploadMsg, WebChromeClient.FileChooserParams fileChooserParams) { mOpenFileChooserCallBack.openFileChooserCallBackAndroid5(uploadMsg,""); return true; } }
這裡實現了對android 5.0 通過webView呼叫本地相機的支援;

工程demo對android 6.0系統也做了適配

如果需要完整的工程程式碼請下載附件 或者私信我(郵箱:[email protected]

demo頁面測試賬號( 王長順, 123456,身份:教師);請勿隨意上傳圖片,本系統有人在使用,謝謝支援配合。

相關推薦

H5 呼叫android原生相機程式碼分析

H5 頁面在webView中呼叫原聲相機: H5 端的程式碼:如下: <input id="upload" type="file" accept="image/*;" capture="camera" >    //文字輸入框; android端的程式碼: w

深坑之Webview,解決H5呼叫android相機拍照和錄影

最近在開發過程中遇到一個問題,主要是呼叫第三方的實名認證,需要拍照和錄影; 辦過支付寶大寶卡和騰訊的大王卡的都知道這玩意,辦卡的時候就需要進行實名認證,人臉識別; 本來第三方平臺(xxx流量公司)說的是直接用WebView載入這個H5介面就完事了,我心想這麼簡單

React Native呼叫Android原生程式碼實現車牌識別功能【附效果圖附原始碼】

        這段時間研究了下React Native,Facebook推出的,結合了Web應用和Native應用的優勢,可以使用JavaScript來開發iOS和Android原生應用,決定簡單研究下,於是開始搭建環境,編寫HelloWorld,完成後又覺得HelloWo

React Native自定義外掛,呼叫android原生程式碼

Hi,寶寶們,我又來了,16有你,17前行,18怎麼辦?18讓我們一起學習RN吧,hybrid現在是一個前沿,雖然官網說Learn once, write anywhere~~~ 僅需學習一次,編寫任何平臺。但是你不能指望它幹任何事啊,android原生的很多功能還是無法直接使用的,這個時

23、JS呼叫Android原生程式碼方法

JS呼叫Android原生程式碼方法 1.   宣告@JavascriptInterface,進行物件對映       2.      使用WebViewClient.shouldOverrideUrlLoading函式,攔截URL   3.      使用WebC

react native 呼叫Android原生方法

來源:https://www.youtube.com/watch?v=WmJpHHmOKM8  教程:https://www.youtube.com/watch?v=GiUo88TGebs Breaking Down Bridging in React Native by Peggy R

react-native呼叫Android原生UI元件

當react-native的UI元件不能滿足需求時,可以考慮在原生自定UI元件,讓RN呼叫.使用原生UI所考慮的問題: 一.原生UI被呼叫; 二.修改原生UI屬性值; 三.捕捉原生UI的響應; 四.RN向原生UI元件發訊息; 下面貼上程式碼,逐步分析,實現: 1.在原生裡

React-native呼叫Android原生模組

準備工作:具體詳情參考React-Native官方文件 IDE: WebStorm 和Android Studio(webstorm不支援java高亮,所以用AS輔助下) demo放到github上了,有需要的可以參考一下.  下載demo 1.為什麼呼叫原生的一

React Native之js呼叫Android原生使用Callback傳遞結果給js

1 問題 上面的文章只是呼叫安卓原生顯示Toast,但是我們一般會需要呼叫安卓的程式碼然後去拿回結果給js,但是我們知道在android層js呼叫的這個函式返回值必須的void,所以我們需要用到Callback,Callback一般用於同步,也就是說直接呼叫

ReactNative 呼叫Android 原生(一)——原生模組(一)

前言 React native呼叫Android原生主要2種方式: 1、呼叫原生模組 2、呼叫原生元件 這裡之所以強調有2種方式主要是自己剛開始弄rn調原生的時候感覺很懵,感覺沒有學習的方向,所以提醒一

ReactNative 呼叫Android 原生(一)——原生模組(二)

ReactNative 呼叫Android 原生(一)——原生模組(一):https://blog.csdn.net/danfengw/article/details/83862623 在上次文章中我們只是簡單的嘗試了rn給Android原生傳遞引數呼叫Andr

ReactNative 呼叫Android 原生(二)——原生元件

先說下我遇到的坑: 原本學完React Native呼叫原生模組我覺得挺順利的,也挺容易理解的,覺得呼叫Android原生元件也是不成問題,應該挺快的,結果React Native 調原生元件一直不顯示,在網上找了好多文章對比看,覺得自己程式碼、步驟都沒有問題

【每天堅持學一點之unity】1、Unity簡單呼叫Android原生方法的一些記錄

    本文的思路靈感來源於CSDN上的一篇部落格,非常感謝原作者,原文地址為:         https://blog.csdn.net/sinat_23156865/article/de

Android Looper類程式碼分析

本文將分析一下Looper類的實現及其應用,程式碼位於 frameworks/native/lib/utils/Looper.cpp。主要分為如下幾個部分: 1. epoll系統呼叫介面簡介 2. Looper類程式碼分析 3. Looper類應用例項分析 一、epol

呼叫android系統相機拍照並將圖片傳指定路徑並獲取相片

public void onClick(View v) { if (v.getId() == R.id.btn_take) { // 調系統相機 if (Environment.getExterna

H5呼叫Android圖片上傳功能

public class OpenFileWebChromeClient extends WebChromeClient { public static final int REQUEST_FILE_PICKER = 1; public ValueCallback<Uri> mF

Android中WheelView程式碼分析筆記1(明天繼續分析 >>>>>)

package com.guozg.wheelview.views; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint;

H5android原生的JS互動

公司最近接手了一個電信的專案,其中最關鍵的技術就是H5頁面與android的互動。因為之前專案中H5與原生介面的載入動畫是分開寫的,導致大小以及效果有差距,所以我才有接觸兩者之間互動的學習機會。簡單

Unity簡單呼叫Android原生方法的一些記錄

    本文的思路靈感來源於CSDN上的一篇部落格,非常感謝原作者,原文地址為:        https://blog.csdn.net/sinat_23156865/article/details/54143064    之前一直是做PC端的一些東西的,所以對於Unity

(八)React Native實現呼叫android原生java方法並實現廣播的傳送和接受

接觸到混合應用開發提議後,首先想到了之前學的ionic,其次便是這兩年火遍全球的RN,由於ionic框架用的angular.js,而且angular1和angular2寫法區別很大,angular2對於初學者還是比較好接受的,但是angular1寫的很亂,程式碼