android中webView JS呼叫Android的方法、webView的下拉重新整理(SwipeRefreshLayout)、下載檔案
阿新 • • 發佈:2019-02-12
最近一直在寫webView的東西,發現有好多功能點,記一下。
JS呼叫Android的方法:
在JS中:寫 window.JavaScriptinterface.closecurrent();
在Adnriod中:
webView.addJavascriptInterface(new backJS(), "JavaScriptinterface");
注意:new backJS()名字可以隨意取,“JavaScriptinterface”對應JS
class backJS {
//沒有返回引數
@JavascriptInterface
public void closeCurrentWin() {
//內容為要呼叫的方法
}
//返回一個String型別引數
@JavascriptInterface
public void closeCurrentWin(String flash) {
//內容為要呼叫的方法
}
}
webView下拉重新整理(SwipeRefreshLayout)
使用android.support.v4.widget.SwipeRefreshLayout進行下拉重新整理,如果使用過程中找不到包報錯,替換一下support.v4就好了,也可以點選連結下載直接替換
1、xml
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_container_links"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:id="@+id/webView_link"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none" />
</android.support.v4.widget.SwipeRefreshLayout>
2、初始化 (設定監聽和進度條顏色)
swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container_links);
swipeLayout.setOnRefreshListener(this);
swipeLayout.setColorScheme(R.color.greys_1, R.color.greys_2,
R.color.greys_3, R.color.greys_4);
3、重新整理
@Override
public void onRefresh() {
// 重新重新整理頁面
webView_link.loadUrl(webView_link.getUrl());
}
下載檔案
1、設定監聽
webView.setDownloadListener(new MyWebViewDownLoadListener());
2、下載到sd卡的指定目錄
private class MyWebViewDownLoadListener implements DownloadListener {
@Override
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Toast t = Toast.makeText(LinkActivity.this, "需要SD卡。",
Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER, 0, 0);
t.show();
return;
}
loadFiles(upUrl);//根據URl下載即可
}
}
注意:在使用webView上傳圖片時,正常是單張上傳,若想同時上傳多個圖片,要自定義,同時JS中寫個按鈕,