下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】Android中怎么利用WebView上傳文件
今天就跟大家聊聊有關(guān)Android中怎么利用WebView上傳文件,可能很多人都不太了解,為了讓大家更加了解,在下給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。1.接收WebView打開文件選擇器的通知2.收到通知后,打開文件選擇器等待用戶選擇需要上傳的文件3.在onActivityResult中得到用戶選擇的文件的Uri4.然后把Uri傳遞給Html5這樣就完成了一次H5選擇文件的過程,下面我把代碼貼出來自習看一下首先,WebView必須要支持JS交互,所以要打開JS交互mWebView.getSettings().setJavaScriptEnabled(true);當H5在調(diào)用上傳文件的Api的時候,WebView會回調(diào)openFileChooser和onShowFileChooser方法來通知我們,我們這個時候要做的就是重寫這個方法需要注意的是這個方法在不同的Api上會回調(diào)不同行參方法mWebView.setWebChromeClient(new
WebChromeClient()
{
@Override
public
void
onProgressChanged(WebView
view,
int
newProgress)
{
if
(newProgress
==
100)
{
mBar.setVisibility(View.GONE);
}
else
{
mBar.setVisibility(View.VISIBLE);
mBar.setProgress(newProgress);
}
super.onProgressChanged(view,
newProgress);
}
//For
Android
API
<
11
(3.0
OS)
public
void
openFileChooser(ValueCallback<Uri>
valueCallback)
{
uploadMessage
=
valueCallback;
openImageChooserActivity();
}
//For
Android
API
>=
11
(3.0
OS)
public
void
openFileChooser(ValueCallback<Uri>
valueCallback,
String
acceptType,
String
capture)
{
uploadMessage
=
valueCallback;
openImageChooserActivity();
}
//For
Android
API
>=
21
(5.0
OS)
@Override
public
boolean
onShowFileChooser(WebView
webView,
ValueCallback<Uri[]>
filePathCallback,
WebChromeClient.FileChooserParams
fileChooserParams)
{
uploadMessageAboveL
=
filePathCallback;
openImageChooserActivity();
return
true;
}
});我們在openFileChooser方法中先保存了一下ValueCallback的回調(diào)對象,這個對象最后用來通知H5文件地址,我們之后在調(diào)用openFileChooser方法來打開文件選擇器private
void
openImageChooserActivity()
{
Intent
i
=
new
Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
startActivityForResult(Intent.createChooser(i,
"Image
Chooser"),
FILE_CHOOSER_RESULT_CODE);
}當用戶選擇完文件后,會調(diào)用onActivityResult方法,我們重寫并等待回調(diào)@Override
protected
void
onActivityResult(int
requestCode,
int
resultCode,
Intent
data)
{
super.onActivityResult(requestCode,
resultCode,
data);
if
(requestCode
==
FILE_CHOOSER_RESULT_CODE)
{
if
(null
==
uploadMessage
&&
null
==
uploadMessageAboveL)
return;
Uri
result
=
data
==
null
||
resultCode
!=
RESULT_OK
?
null
:
data.getData();
if
(uploadMessageAboveL
!=
null)
{
onActivityResultAboveL(requestCode,
resultCode,
data);
}
else
if
(uploadMessage
!=
null)
{
uploadMessage.onReceiveValue(result);
uploadMessage
=
null;
}
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private
void
onActivityResultAboveL(int
requestCode,
int
resultCode,
Intent
intent)
{
if
(requestCode
!=
FILE_CHOOSER_RESULT_CODE
||
uploadMessageAboveL
==
null)
return;
Uri[]
results
=
null;
if
(resultCode
==
Activity.RESULT_OK)
{
if
(intent
!=
null)
{
String
dataString
=
intent.getDataString();
ClipData
clipData
=
intent.getClipData();
if
(clipData
!=
null)
{
results
=
new
Uri[clipData.getItemCount()];
for
(int
i
=
0;
i
<
clipData.getItemCount();
i++)
{
ClipData.Item
item
=
clipData.getItemAt(i);
results[i]
=
item.getUri();
}
}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 進口委托代理合同
- 設(shè)計師聘用合同書
- 美容師聘用標準合同年
- 種苗采購的合同范本
- 互動儀式鏈視角下輪崗教師專業(yè)引領(lǐng)的困境與破解
- 青春期父母預備手冊-隨筆
- 2025年湘教新版必修1物理下冊月考試卷含答案
- 2025年外研版三年級起點九年級歷史下冊階段測試試卷含答案
- 智能客服系統(tǒng)合作開發(fā)合同(2篇)
- 2025年外研版三年級起點九年級地理上冊階段測試試卷
- 四年級四年級下冊閱讀理解20篇(附帶答案解析)經(jīng)典
- 大連高新區(qū)整體發(fā)展戰(zhàn)略規(guī)劃(產(chǎn)業(yè)及功能布局)
- 國有資產(chǎn)管理法律責任與風險防控
- 未婚生子的分手協(xié)議書
- 變更監(jiān)事章程修正案范例
- 北京小客車指標租賃協(xié)議五篇
- 輸液室運用PDCA降低靜脈輸液患者外滲的發(fā)生率品管圈(QCC)活動成果
- YY/T 0681.2-2010無菌醫(yī)療器械包裝試驗方法第2部分:軟性屏障材料的密封強度
- 煙氣管道阻力計算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務(wù)迎接重大節(jié)日、活動的保障措施
- 醫(yī)院-9S管理共88張課件
評論
0/150
提交評論