Android BaseWebLoad组件使用及与js方法互调
16lz
2021-01-23
- 下载附件中的包,导入项目中;
- 具体使用及Android与JS互调示例: public class HtmlTest extends BaseWebLoad { public HtmlTest(Context context, AttributeSet attrs) {
super(context, attrs);
} @Override
protected void onPreCreated(Context context) {
// 构建之前
this.setDisplayType(WebLoadDisplayType.LoadingAndText);
this.setProgressDrawableResid(R.anim.progressbar_loading);
this.setJsInterfaceName("derlook");
this.setTextSize(TextSize.NORMAL);
} @Override
protected void onCreated(Context context) {
// 构建之后
} @Override
protected Object getJavascriptInterface(WebView wv) {
// 获取接口对象
return new AndroidToastForJs();
} @Override
protected void onFinished(WebView view) {
// 加载完成;完成之后启用本地的相应控件;在此处调用js即类似页面初始化函数;
view.loadUrl("javascript:testjson('测试')");
} @Override
protected void onOverrideUrlLoading(WebView view, String url) {
// 加载中
} @Override
protected void onLoadError(WebView view, int errorCode, String description,
String failingUrl) {
// 链接超时、地址无效或加载失败
} // js调用对象
class AndroidToastForJs {
// 给js调用的函数接口前需注册@JavascriptInterface;
// android:targetSdkVersion决定sdk版本;
// 4.2.2之前需调用自定义的@JavascriptInterface,4.2.2之后调用系统android.R.webkit.JavascriptInterface;
// js调用android本地函数:JsInterfaceName.LocalMethod(params...);(如derlook.getTestJsonResult('');)
@JavascriptInterface
public void getTestJsonResult(String result) {
ToastUtils.showLong(getContext(), result);
}
}
}
更多相关文章
- C语言函数以及函数的使用
- 【Android】Web开发之通过标准Java接口处理Http请求
- AIDL(android 接口描述语言)
- android中加载大图片到内存
- android加载大图片内存问题
- android图片异步加载解决步骤
- android:使用webview加载网页
- Android中Parcelable接口用法