justson / agentweb Goto Github PK
View Code? Open in Web Editor NEWAgentWeb is a powerful library based on Android WebView.
Home Page: https://www.jianshu.com/p/fc7909e24178
License: Apache License 2.0
AgentWeb is a powerful library based on Android WebView.
Home Page: https://www.jianshu.com/p/fc7909e24178
License: Apache License 2.0
public void onDestroy() {
mAgentWeb.getWebLifeCycle().onDestroy();
super.onDestroy();
}
我这样调,发现退出activity的时候会崩溃
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeCallbacksAndMessages(java.lang.Object)' on a null object reference
我之前 看过很多webview的文章,提到退出时最后在onDestroy()做webview的置空操作,可以尽可能避免内存溢出
之前我是这样做的:
protected void onDestroy() {
super.onDestroy();
if (mWebView != null) {
mWebView.clearHistory();
((ViewGroup) mWebView.getParent()).removeView(mWebView);
mWebView.loadUrl("about:blank");
mWebView.stopLoading();
mWebView.setWebChromeClient(null);
mWebView.setWebViewClient(null);
mWebView.destroy();
mWebView = null;
}
}
现在agentWeb是否需要做类似的操作
大神,为什么使用你的框架这个网址打不开呢?
https://api.banmi.com/app2017/contact.html
E/dalvikvm: Could not find class 'android.webkit.WebChromeClient$FileChooserParams', referenced from method com.just.library.DefaultChromeClient.onShowFileChooser
E/dalvikvm: Could not find class 'org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper', referenced from method org.greenrobot.greendao.database.DatabaseOpenHelper.checkEncryptedHelper
E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
比如:useDefaultIndicator(@ColorInt int color)
R.color.xx 也是int 但是是@ColorRes的,不加注解不好区分
如何设置cookie给他
AgentWebUtils里面getIntentCompat方法 if (Build.VERSION.SDK_INT >= 24) 这样才没问题。你之前的写法是在夜神模拟器上点击安装崩溃。
public static Intent getIntentCompat(Context context, File file) {
Intent mIntent = null;
LogUtils.i("Info", "getIntentCompat :" + context.getApplicationInfo().targetSdkVersion);
if (Build.VERSION.SDK_INT >= 24) {
mIntent = new Intent(Intent.ACTION_VIEW);
mIntent.setDataAndType(FileProvider.getUriForFile(context, context.getPackageName() + ".AgentWebFileProvider", file), "application/vnd.android.package-archive");
mIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
mIntent = AgentWebUtils.getFileIntent(file);
}
return mIntent;
}
AgentWebFragment类中内部类WebViewClient中方法
@OverRide
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return shouldOverrideUrlLoading(view, request.getUrl() + "");
}
报错,只支持21以上的、
Js调用Android 后Android返回数据给js
或者android 调用js后js返回数据给Android
https://github.com/lzyzsd/JsBridge
如上这个库提供这样的功能
你好,cookie怎么注入?
网页的标签打不开 点了没反应
运行一段时间会自动闪退,是h5写的太烂嘛?
shouldOverrideUrlLoading() 这个拦截不到。。。
Hi,
I using agent web and when upload app to google, i have email alert:
Vulnerability APK Version(s)
SSL Error Handler
For more information on how to address WebView SSL Error Handler alerts, please see this Google Help Center article.
I try google and fix this in AgentWebFragment.java (My app base on your example app), but when update app again, error still orccur, please help!
private WebViewClient mWebViewClient = new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
//final AlertDialog.Builder builder = new AlertDialog.Builder(OnlinePayment.this);
String msg="";
if(error.getPrimaryError()==SslError.SSL_DATE_INVALID
|| error.getPrimaryError()== SslError.SSL_EXPIRED
|| error.getPrimaryError()== SslError.SSL_IDMISMATCH
|| error.getPrimaryError()== SslError.SSL_INVALID
|| error.getPrimaryError()== SslError.SSL_NOTYETVALID
|| error.getPrimaryError()==SslError.SSL_UNTRUSTED) {
if(error.getPrimaryError()==SslError.SSL_DATE_INVALID){
msg="The date of the certificate is invalid";
}else if(error.getPrimaryError()==SslError.SSL_INVALID){
msg="A generic error occurred";
}
else if(error.getPrimaryError()== SslError.SSL_EXPIRED){
msg="The certificate has expired";
}else if(error.getPrimaryError()== SslError.SSL_IDMISMATCH){
msg="Hostname mismatch";
}
else if(error.getPrimaryError()== SslError.SSL_NOTYETVALID){
msg="The certificate is not yet valid";
}
else if(error.getPrimaryError()==SslError.SSL_UNTRUSTED){
msg="The certificate authority is not trusted";
}
}
msg += ". We will cancel the request.";
final AlertDialog.Builder builder = new AlertDialog.Builder(AgentWebFragment.this.getActivity());
builder.setMessage(msg);
builder.setPositiveButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handler.cancel();
}
});
final AlertDialog dialog = builder.create();
dialog.show();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.i("Info","shouldOverrideUrlLoading");
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.i("Info","url:"+url);
if(url.equals(getUrl())){
pageNavigator(View.GONE);
}else{
pageNavigator(View.VISIBLE);
}
}
};
@Override
public void callJs(String js, final ValueCallback<String> callback) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR1) {
this.evaluateJs(js, callback);
} else {
this.loadJs(js);
}
}
1 . A basic form with select field, click no popup window, and monitor error as next:
webview show mWindowManager.addView RuntimeException
2 .Javascript confirm will crash the webview
I used AgentWeb with fragment.
AgentWeb is very nice!!
以前没配过···改怎么配置啊 看了网上资料都是很复杂很复杂的
我看到代码中,java 调用js,可以使用quickCallJs();那么 js 调用java,需要在那里做设置呢
如题
感谢您的分享,刚看到Javascript 调 Java的方法,是window.android.这种方式调用的.这种调用方法只有在android中使用AgentWeb才能调用成功吗?
因为一般公司的项目都是两个端的(ios和android),之前js直接用JavaScriptClient.方法 两个端的方法就都能调用了
如何添加 开始 成功 失败的加载监听啊?
有三个功能我觉得挺不错的,AgentWeb库当前里面有吗?
第一个功能:如果网站的标题颜色的绿色,可以自动获取到网站标题的颜色,并设置标题栏颜色和网站标题颜色为一致绿色
第二个功能:可以像QQ浏览器那样设置UA标识吗,就是可以根据设置来决定打开的页面为(Android页面还是电脑端页面)的网页
第三个功能:当点击网页中的图片时,可以实现自动跳转到图片预览界面,图片预览界面库推荐使用此库很不错https://github.com/Hitomis/transferee
最近需要使用webview做一些复杂点的展示,就发现了您的开源工程。首先感谢您的分享!我想把您的library工程作为一个module嵌入到我的工程中,但是我发现我拷贝后就比较难与您的代码同步。还有一种选择是使用compile,但是这样的话一旦遇到问题不能及时修改。如果把library作为一个单独的module(一个单独的repository),再在sample repository中通过忽略library repository的git消除冲突的git校验。这样如果使用过程中发现问题可以及时修改,如果解决问题也可以把解决方案反馈给您
你好,文件上传时,选择一个文件比如图片后,会在onActivityResult里调用uploadFileResult上传图片,那这个requestCode是多少呢?是否可以暴露出来?
WebView 加载的时候能不能提交post ,header数据
targetSdkVersion 25以下都无法集成
大概看了下代码,发现onShowFileChooser 里的 FileChooserParams 也没有capture属性,只有个captureEnabled。这种的不能打开相机的要怎么处理,我看用UC浏览器可以打开,是不是跟浏览器内核有关?
红米2 系统5.1.1 AgentWeb版本1.2.4
webview是否可以通过传入实现,比如腾讯的x5,性能相比原生webview好一点
http://uri.amap.com/navigation?from=113.377287,23.1269,我的位置&to=113.458607,23.102193,你的位置&via=&mode=car&policy=0&src=mypage&coordinate=gaode&callnative=0
报需要FLAG_ACTIVITY_NEW_TASK,在DefaultDownLoaderImpl 的58行那个intent的哪里 需要这个flag
当页面跳转是target=_blank的时候,没办法看到新的页面,怎么办呢?
Error:Execution failed for task ':sample:validateSigningDebug'.
Keystore file F:\Download\AgentWeb-master\sample\keystore\keystore.jks not found for signing config 'release'.
如题,我想处理上拉下拉滑动事件,点不出来 setOnTouchListener
以前用webview的时候这个是可以的,但是用了你的框架发现这个方法不用了.
如题
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.