/* * Created by LuaView. * Copyright (c) 2017, Alibaba Group. All rights reserved. * * This source code is licensed under the MIT. * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. */ package com.taobao.luaview.userdata.ui; import android.text.TextUtils; import android.webkit.WebView; import com.taobao.luaview.view.LVWebView; import org.luaj.vm2.Globals; import org.luaj.vm2.LuaValue; import org.luaj.vm2.Varargs; /** * Created by tuoli on 10/9/16. */ public class UDWebView extends UDView<LVWebView> { public UDWebView(LVWebView view, Globals globals, LuaValue metatable, Varargs initParams) { super(view, globals, metatable, initParams); } /** * Loads the given URL. * @param url * @return */ public UDWebView loadUrl(String url) { if (!TextUtils.isEmpty(url)) { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { view.loadUrl(url); } } return this; } public boolean canGoBack() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { return view.canGoBack(); } return false; } public boolean canGoForward() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { return view.canGoBack(); } return false; } public UDWebView goBack() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { view.goBack(); } return this; } public UDWebView goForward() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { view.goForward(); } return this; } public UDWebView reload() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { view.reload(); } return this; } public UDWebView stopLoading() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { view.stopLoading(); } return this; } public boolean isLoading() { return this.getView() != null ? this.getView().getLoadingState() : false; } /** * Get the tile of web page * @return */ public String title() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { return view.getTitle(); } return ""; } /** * Get the loaded URL * @return */ public String url() { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { return view.getUrl(); } return ""; } @Override public UDView setCallback(LuaValue callbacks) { this.mCallback = callbacks; return this; } /** * 设置WebView的enabled state * @param enable * @return */ @Override public UDView setEnabled(boolean enable) { WebView view = null; if (this.getView() != null && (view = this.getView().getWebView()) != null) { view.setEnabled(enable); } return this; } /** * 设置SwipeRefreshLayout是否有效,无效则不可下拉 * @param enable * @return */ public UDWebView pullRefreshEnable(boolean enable) { final LVWebView view = this.getView(); if (view != null) { view.setEnabled(enable); } return this; } public boolean isPullRefreshEnable() { return this.getView() != null ? this.getView().isEnabled() : false; } }