Java Code Examples for android.webkit.WebSettings#setAllowFileAccess()
The following examples show how to use
android.webkit.WebSettings#setAllowFileAccess() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: LoveVideoView.java From Gank.io with GNU General Public License v3.0 | 6 votes |
void init() { setWebViewClient(new LoveClient()); WebSettings webSettings = getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setAllowFileAccess(true); webSettings.setDatabaseEnabled(true); webSettings.setDomStorageEnabled(true); webSettings.setSaveFormData(false); webSettings.setAppCacheEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webSettings.setLoadWithOverviewMode(false); webSettings.setUseWideViewPort(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (BuildConfig.DEBUG) { WebView.setWebContentsDebuggingEnabled(true); } } }
Example 2
Source File: WebViewActivity.java From LQRWeChat with MIT License | 6 votes |
@Override public void initView() { mIbToolbarMore.setVisibility(View.VISIBLE); //设置webView WebSettings settings = mWebView.getSettings(); settings.setRenderPriority(WebSettings.RenderPriority.HIGH); settings.setSupportMultipleWindows(true); settings.setJavaScriptEnabled(true); settings.setSavePassword(false); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setMinimumFontSize(settings.getMinimumLogicalFontSize() + 8); settings.setAllowFileAccess(false); settings.setTextSize(WebSettings.TextSize.NORMAL); mWebView.setVerticalScrollbarOverlay(true); mWebView.setWebViewClient(new MyWebViewClient()); mWebView.loadUrl(mUrl); setToolbarTitle(TextUtils.isEmpty(mTitle) ? mWebView.getTitle() : mTitle); }
Example 3
Source File: JockeyJsWebView.java From TLint with Apache License 2.0 | 6 votes |
private void initWebView() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setWebContentsDebuggingEnabled(BuildConfig.DEBUG); } WebSettings settings = getSettings(); settings.setJavaScriptEnabled(true); settings.setAllowFileAccess(true); settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); settings.setUseWideViewPort(true); settings.setSupportZoom(false); settings.setBuiltInZoomControls(false); settings.setSupportMultipleWindows(true); settings.setDefaultTextEncodingName("UTF-8"); if (Build.VERSION.SDK_INT > 12) { settings.setJavaScriptCanOpenWindowsAutomatically(true); } settings.setAppCacheEnabled(true); settings.setLoadWithOverviewMode(true); settings.setDomStorageEnabled(true); settings.setCacheMode(NetWorkUtil.isNetworkConnected(getContext()) ? WebSettings.LOAD_DEFAULT : WebSettings.LOAD_CACHE_ELSE_NETWORK); settings.setCacheMode(2); if (Build.VERSION.SDK_INT > 11) { setLayerType(0, null); } }
Example 4
Source File: WebConfigImpl.java From PoupoLayer with MIT License | 5 votes |
/** * 默认webview设置 * @param settings */ private void initSetting(WebSettings settings, Context context){ //5.0以上开启混合模式加载 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } settings.setLoadWithOverviewMode(true); settings.setUseWideViewPort(true); //允许js代码 在Android 4.3版本调用WebSettings.setJavaScriptEnabled()方法时会调用一下reload方法,同时会回调多次WebChromeClient.onJsPrompt() settings.setJavaScriptEnabled(true); //允许SessionStorage/LocalStorage存储 settings.setDomStorageEnabled(true); //禁用放缩 settings.setDisplayZoomControls(false); settings.setBuiltInZoomControls(false); //禁用文字缩放 settings.setTextZoom(100); //10M缓存,api 18后,系统自动管理。 settings.setAppCacheMaxSize(10 * 1024 * 1024); //允许缓存,设置缓存位置 缓存位置由用户指定 settings.setAppCacheEnabled(true); settings.setAppCachePath(context.getDir("appcache", 0).getPath()); //允许WebView使用File协议 settings.setAllowFileAccess(true); //不保存密码 settings.setSavePassword(false); //自动加载图片 settings.setLoadsImagesAutomatically(true); }
Example 5
Source File: HtmlActivity.java From AFBaseLibrary with Apache License 2.0 | 5 votes |
@SuppressLint("SetJavaScriptEnabled") private void initWebView() { final WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); settings.setAllowFileAccess(true); settings.setDomStorageEnabled(true); settings.setGeolocationEnabled(true); mWebView.setWebViewClient(new CustomWebViewClient()); mWebView.setWebChromeClient(new CustomChromeClient()); mWebView.loadUrl(url); }
Example 6
Source File: WebFragment.java From MangoBloggerAndroidApp with Mozilla Public License 2.0 | 5 votes |
/** * Function to enable caching */ private void enableCache() { WebSettings webSettings = mWebView.getSettings(); webSettings.setAppCacheMaxSize(5 * 1024 * 1024); // 5MB webSettings.setAppCachePath(getContext().getCacheDir().getAbsolutePath()); webSettings.setAllowFileAccess(true); webSettings.setAppCacheEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default if (!AppUtils.isNetworkConnected(getContext())) { // loading offline webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); } }
Example 7
Source File: WebViewActivity.java From mattermost-android-classic with Apache License 2.0 | 5 votes |
protected void initWebView(WebView view) { webView = view; setProgressBarVisibility(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } WebSettings settings = view.getSettings(); settings.setJavaScriptEnabled(true); settings.setDomStorageEnabled(true); settings.setUserAgentString(settings.getUserAgentString() + " Web-Atoms-Mobile-WebView"); settings.setDatabaseEnabled(true); settings.setMediaPlaybackRequiresUserGesture(false); final File dir = this.getExternalCacheDir(); settings.setAppCacheMaxSize(1024*1024*20); settings.setAppCachePath(dir.getAbsolutePath()); settings.setAllowFileAccess(true); settings.setAppCacheEnabled(true); settings.setCacheMode(WebSettings.LOAD_DEFAULT); view.setDownloadListener(getDownloadListener()); CookieManager cookies = CookieManager.getInstance(); cookies.setAcceptCookie(true); setWebViewClient(view); setWebChromeClient(view); }
Example 8
Source File: MainActivity.java From CacheWebView with MIT License | 5 votes |
private void initSettings() { WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setDomStorageEnabled(true); webSettings.setAllowFileAccess(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setSupportZoom(true); webSettings.setBuiltInZoomControls(false); webSettings.setDisplayZoomControls(false); webSettings.setDefaultTextEncodingName("UTF-8"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { CookieManager cookieManager = CookieManager.getInstance(); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webSettings.setMixedContentMode( WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); } }
Example 9
Source File: BaseWebView.java From dcs-sdk-java with Apache License 2.0 | 5 votes |
@SuppressWarnings("deprecation") @SuppressLint("NewApi") private void init(Context context) { this.setVerticalScrollBarEnabled(false); this.setHorizontalScrollBarEnabled(false); if (Build.VERSION.SDK_INT < 19) { removeJavascriptInterface("searchBoxJavaBridge_"); } WebSettings localWebSettings = this.getSettings(); try { // 禁用file协议,http://www.tuicool.com/articles/Q36ZfuF, 防止Android WebView File域攻击 localWebSettings.setAllowFileAccess(false); localWebSettings.setSupportZoom(false); localWebSettings.setBuiltInZoomControls(false); localWebSettings.setUseWideViewPort(true); localWebSettings.setDomStorageEnabled(true); localWebSettings.setLoadWithOverviewMode(true); localWebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); localWebSettings.setPluginState(PluginState.ON); // 启用数据库 localWebSettings.setDatabaseEnabled(true); // 设置定位的数据库路径 String dir = context.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); localWebSettings.setGeolocationDatabasePath(dir); localWebSettings.setGeolocationEnabled(true); localWebSettings.setJavaScriptEnabled(true); localWebSettings.setSavePassword(false); String agent = localWebSettings.getUserAgentString(); localWebSettings.setUserAgentString(agent); // setCookie(context, ".baidu.com", bdussCookie); } catch (Exception e1) { e1.printStackTrace(); } this.setWebViewClient(new BridgeWebViewClient()); }
Example 10
Source File: HuPuWebView.java From SprintNBA with Apache License 2.0 | 5 votes |
private void init() { WebSettings settings = getSettings(); settings.setBuiltInZoomControls(false); settings.setSupportZoom(false); settings.setJavaScriptEnabled(true); settings.setAllowFileAccess(true); settings.setSupportMultipleWindows(false); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setDomStorageEnabled(true); settings.setCacheMode(WebSettings.LOAD_DEFAULT); settings.setUseWideViewPort(true); if (Build.VERSION.SDK_INT > 6) { settings.setAppCacheEnabled(true); settings.setLoadWithOverviewMode(true); } String path = getContext().getFilesDir().getPath(); settings.setGeolocationEnabled(true); settings.setGeolocationDatabasePath(path); settings.setDomStorageEnabled(true); this.basicUA = settings.getUserAgentString() + " kanqiu/7.05.6303/7059"; setBackgroundColor(0); initWebViewClient(); setWebChromeClient(new HuPuChromeClient()); try { if (SettingPrefUtils.isLogin()) { CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setCookie("http://bbs.mobileapi.hupu.com", "u=" + SettingPrefUtils.getCookies()); cookieManager.setCookie("http://bbs.mobileapi.hupu.com", "_gamesu=" + URLEncoder.encode(SettingPrefUtils.getToken(), "utf-8")); cookieManager.setCookie("http://bbs.mobileapi.hupu.com", "_inKanqiuApp=1"); cookieManager.setCookie("http://bbs.mobileapi.hupu.com", "_kanqiu=1"); CookieSyncManager.getInstance().sync(); } } catch (Exception e) { e.printStackTrace(); } }
Example 11
Source File: WaypointInformation.java From trekarta with GNU General Public License v3.0 | 5 votes |
private void setWebViewText(LimitedWebView webView) { String css = "<style type=\"text/css\">html,body{margin:0}</style>\n"; String descriptionHtml = css + mWaypoint.description; webView.setBackgroundColor(Color.TRANSPARENT); webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); // flicker workaround WebSettings settings = webView.getSettings(); settings.setDefaultTextEncodingName("utf-8"); settings.setAllowFileAccess(true); Uri baseUrl = Uri.fromFile(MapTrek.getApplication().getExternalDir("data")); webView.loadDataWithBaseURL(baseUrl.toString() + "/", descriptionHtml, "text/html", "utf-8", null); }
Example 12
Source File: MainActivity.java From webTube with GNU General Public License v3.0 | 5 votes |
public void setUpWebview() { // To save login info CookieHelper.acceptCookies(webView, true); // Some settings WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(false); webSettings.setAllowFileAccess(false); webSettings.setDatabaseEnabled(true); String cachePath = mApplicationContext .getDir("cache", Context.MODE_PRIVATE).getPath(); webSettings.setAppCachePath(cachePath); webSettings.setAllowFileAccess(true); webSettings.setAppCacheEnabled(true); webSettings.setDomStorageEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webView.setHorizontalScrollBarEnabled(false); webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); webView.setBackgroundColor(Color.WHITE); webView.setScrollbarFadingEnabled(true); webView.setNetworkAvailable(true); }
Example 13
Source File: H5AuthActivity.java From letv with Apache License 2.0 | 4 votes |
protected void onCreate(Bundle bundle) { super.onCreate(bundle); try { Bundle extras = getIntent().getExtras(); if (extras == null) { finish(); return; } try { String string = extras.getString("url"); if (k.a(string)) { Method method; super.requestWindowFeature(1); this.c = new Handler(getMainLooper()); View linearLayout = new LinearLayout(getApplicationContext()); LayoutParams layoutParams = new LinearLayout.LayoutParams(-1, -1); linearLayout.setOrientation(1); setContentView(linearLayout, layoutParams); this.a = new WebView(getApplicationContext()); layoutParams.weight = 1.0f; this.a.setVisibility(0); linearLayout.addView(this.a, layoutParams); WebSettings settings = this.a.getSettings(); settings.setUserAgentString(settings.getUserAgentString() + k.c(getApplicationContext())); settings.setRenderPriority(RenderPriority.HIGH); settings.setSupportMultipleWindows(true); settings.setJavaScriptEnabled(true); settings.setSavePassword(false); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setMinimumFontSize(settings.getMinimumFontSize() + 8); settings.setAllowFileAccess(false); settings.setTextSize(TextSize.NORMAL); this.a.setVerticalScrollbarOverlay(true); this.a.setWebViewClient(new a()); this.a.setDownloadListener(new a(this)); this.a.loadUrl(string); if (VERSION.SDK_INT >= 7) { try { method = this.a.getSettings().getClass().getMethod("setDomStorageEnabled", new Class[]{Boolean.TYPE}); if (method != null) { method.invoke(this.a.getSettings(), new Object[]{Boolean.valueOf(true)}); } } catch (Exception e) { } } try { method = this.a.getClass().getMethod("removeJavascriptInterface", new Class[0]); if (method != null) { method.invoke(this.a, new Object[]{"searchBoxJavaBridge_"}); return; } return; } catch (Exception e2) { return; } } finish(); } catch (Exception e3) { finish(); } } catch (Exception e4) { finish(); } }
Example 14
Source File: MyWebView.java From DoraemonKit with Apache License 2.0 | 4 votes |
private void init(Context context) { if (!(context instanceof Activity)) { throw new RuntimeException("only support Activity context"); } else { this.mContainerActivity = (Activity) context; WebSettings webSettings = this.getSettings(); webSettings.setPluginState(WebSettings.PluginState.ON); webSettings.setJavaScriptEnabled(true); webSettings.setAllowFileAccess(false); webSettings.setLoadsImagesAutomatically(true); webSettings.setUseWideViewPort(true); webSettings.setBuiltInZoomControls(false); webSettings.setDefaultTextEncodingName("UTF-8"); webSettings.setDomStorageEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webSettings.setJavaScriptCanOpenWindowsAutomatically(false); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) { webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setWebContentsDebuggingEnabled(true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webSettings.setMixedContentMode(0); } if (Build.VERSION.SDK_INT > Build.VERSION_CODES.GINGERBREAD_MR1 && Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { this.removeJavascriptInterface("searchBoxJavaBridge_"); this.removeJavascriptInterface("accessibilityTraversal"); this.removeJavascriptInterface("accessibility"); } mMyWebViewClient = new MyWebViewClient(); this.setWebViewClient(mMyWebViewClient); this.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress < 100) { showLoadProgress(newProgress); } else { hideLoadProgress(); } } }); addProgressView(); } }
Example 15
Source File: WebViewActivity.java From DeviceConnect-Android with MIT License | 4 votes |
@Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); } Intent intent = getIntent(); if (intent == null) { finish(); return; } String url = intent.getStringExtra(EXTRA_URL); if (url == null) { finish(); return; } String title = intent.getStringExtra(EXTRA_TITLE); if (title != null) { setTitle(title); } boolean ssl = intent.getBooleanExtra(EXTRA_SSL, false); mSSL = ssl ? SSL_ON : SSL_OFF; mWebView = (WebView) findViewById(R.id.activity_web_view); if (mWebView != null) { mWebView.setWebViewClient(mWebViewClient); mWebView.setWebChromeClient(mChromeClient); mWebView.setVerticalScrollBarEnabled(false); mWebView.setHorizontalScrollBarEnabled(false); mWebView.addJavascriptInterface(new JavaScriptInterface(), "Android"); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setDomStorageEnabled(true); webSettings.setDatabaseEnabled(true); webSettings.setAllowFileAccess(true); webSettings.setAppCacheEnabled(false); webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); // Android 4.0以上では、chromeからデバッグするための機能が存在する // ここでは、DEBUGビルドの場合のみ使えるように設定している。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (DEBUG) { if (0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE)) { WebView.setWebContentsDebuggingEnabled(true); } } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true); } loadUrl(mWebView, url); } }
Example 16
Source File: AuthActivity.java From letv with Apache License 2.0 | 4 votes |
protected void onCreate(Bundle bundle) { super.onCreate(bundle); try { Bundle extras = getIntent().getExtras(); if (extras == null) { finish(); return; } try { this.d = extras.getString(b); String string = extras.getString("params"); if (k.a(string)) { Method method; super.requestWindowFeature(1); this.f = new Handler(getMainLooper()); View linearLayout = new LinearLayout(getApplicationContext()); LayoutParams layoutParams = new LinearLayout.LayoutParams(-1, -1); linearLayout.setOrientation(1); setContentView(linearLayout, layoutParams); this.c = new WebView(getApplicationContext()); layoutParams.weight = 1.0f; this.c.setVisibility(0); linearLayout.addView(this.c, layoutParams); WebSettings settings = this.c.getSettings(); settings.setUserAgentString(settings.getUserAgentString() + k.c(getApplicationContext())); settings.setRenderPriority(RenderPriority.HIGH); settings.setSupportMultipleWindows(true); settings.setJavaScriptEnabled(true); settings.setSavePassword(false); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setMinimumFontSize(settings.getMinimumFontSize() + 8); settings.setAllowFileAccess(false); settings.setTextSize(TextSize.NORMAL); this.c.setVerticalScrollbarOverlay(true); this.c.setWebViewClient(new b()); this.c.setWebChromeClient(new a()); this.c.setDownloadListener(new a(this)); this.c.loadUrl(string); if (VERSION.SDK_INT >= 7) { try { method = this.c.getSettings().getClass().getMethod("setDomStorageEnabled", new Class[]{Boolean.TYPE}); if (method != null) { method.invoke(this.c.getSettings(), new Object[]{Boolean.valueOf(true)}); } } catch (Exception e) { } } try { method = this.c.getClass().getMethod("removeJavascriptInterface", new Class[0]); if (method != null) { method.invoke(this.c, new Object[]{"searchBoxJavaBridge_"}); return; } return; } catch (Exception e2) { return; } } finish(); } catch (Exception e3) { finish(); } } catch (Exception e4) { finish(); } }
Example 17
Source File: WebSettingsCompat.java From Android_Skin_2.0 with Apache License 2.0 | 4 votes |
@Override public void setAllowFileAccess(WebSettings settings, boolean allow) { settings.setAllowFileAccess(allow); }
Example 18
Source File: H5PayActivity.java From letv with Apache License 2.0 | 4 votes |
protected void onCreate(Bundle bundle) { super.onCreate(bundle); try { Bundle extras = getIntent().getExtras(); if (extras == null) { finish(); return; } try { String string = extras.getString("url"); if (k.a(string)) { Method method; super.requestWindowFeature(1); this.c = new Handler(getMainLooper()); Object string2 = extras.getString("cookie"); if (!TextUtils.isEmpty(string2)) { CookieSyncManager.createInstance(getApplicationContext()).sync(); CookieManager.getInstance().setCookie(string, string2); CookieSyncManager.getInstance().sync(); } View linearLayout = new LinearLayout(getApplicationContext()); LayoutParams layoutParams = new LinearLayout.LayoutParams(-1, -1); linearLayout.setOrientation(1); setContentView(linearLayout, layoutParams); this.a = new WebView(getApplicationContext()); layoutParams.weight = 1.0f; this.a.setVisibility(0); linearLayout.addView(this.a, layoutParams); WebSettings settings = this.a.getSettings(); settings.setUserAgentString(settings.getUserAgentString() + k.c(getApplicationContext())); settings.setRenderPriority(RenderPriority.HIGH); settings.setSupportMultipleWindows(true); settings.setJavaScriptEnabled(true); settings.setSavePassword(false); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setMinimumFontSize(settings.getMinimumFontSize() + 8); settings.setAllowFileAccess(false); settings.setTextSize(TextSize.NORMAL); this.a.setVerticalScrollbarOverlay(true); this.a.setWebViewClient(new a()); this.a.loadUrl(string); if (VERSION.SDK_INT >= 7) { try { method = this.a.getSettings().getClass().getMethod("setDomStorageEnabled", new Class[]{Boolean.TYPE}); if (method != null) { method.invoke(this.a.getSettings(), new Object[]{Boolean.valueOf(true)}); } } catch (Exception e) { } } try { method = this.a.getClass().getMethod("removeJavascriptInterface", new Class[0]); if (method != null) { method.invoke(this.a, new Object[]{"searchBoxJavaBridge_"}); return; } return; } catch (Exception e2) { return; } } finish(); } catch (Exception e3) { finish(); } } catch (Exception e4) { finish(); } }
Example 19
Source File: BaseWebSetting.java From PocketEOS-Android with GNU Lesser General Public License v3.0 | 4 votes |
private void initWebSettings() { WebSettings webSettings = mBaseWebView.getSettings(); if (webSettings == null) return; //设置字体缩放倍数,默认100 webSettings.setTextZoom(100); // 支持 Js 使用 webSettings.setJavaScriptEnabled(true); // 开启DOM缓存 webSettings.setDomStorageEnabled(true); // 开启数据库缓存 webSettings.setDatabaseEnabled(true); // 支持自动加载图片 webSettings.setLoadsImagesAutomatically(hasKitkat()); if (isCache) { // 设置 WebView 的缓存模式 webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); // 支持启用缓存模式 webSettings.setAppCacheEnabled(true); // 设置 AppCache 最大缓存值(现在官方已经不提倡使用,已废弃) webSettings.setAppCacheMaxSize(8 * 1024 * 1024); // Android 私有缓存存储,如果你不调用setAppCachePath方法,WebView将不会产生这个目录 webSettings.setAppCachePath(mContext.getCacheDir().getAbsolutePath()); } // 数据库路径 if (!hasKitkat()) { webSettings.setDatabasePath(mContext.getDatabasePath("html").getPath()); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } // 关闭密码保存提醒功能 webSettings.setSavePassword(false); // 支持缩放 webSettings.setSupportZoom(true); // 设置 UserAgent 属性 webSettings.setUserAgentString(""); // 允许加载本地 html 文件/false webSettings.setAllowFileAccess(true); // 允许通过 file url 加载的 Javascript 读取其他的本地文件,Android 4.1 之前默认是true,在 Android 4.1 及以后默认是false,也就是禁止 webSettings.setAllowFileAccessFromFileURLs(false); // 允许通过 file url 加载的 Javascript 可以访问其他的源,包括其他的文件和 http,https 等其他的源, // Android 4.1 之前默认是true,在 Android 4.1 及以后默认是false,也就是禁止 // 如果此设置是允许,则 setAllowFileAccessFromFileURLs 不起做用 webSettings.setAllowUniversalAccessFromFileURLs(false); }
Example 20
Source File: ReactWebViewManager.java From react-native-GPay with MIT License | 4 votes |
@Override @TargetApi(Build.VERSION_CODES.LOLLIPOP) protected WebView createViewInstance(ThemedReactContext reactContext) { ReactWebView webView = createReactWebViewInstance(reactContext); webView.setWebChromeClient(new WebChromeClient() { @Override public boolean onConsoleMessage(ConsoleMessage message) { if (ReactBuildConfig.DEBUG) { return super.onConsoleMessage(message); } // Ignore console logs in non debug builds. return true; } @Override public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { callback.invoke(origin, true, false); } }); reactContext.addLifecycleEventListener(webView); mWebViewConfig.configWebView(webView); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDisplayZoomControls(false); settings.setDomStorageEnabled(true); settings.setAllowFileAccess(false); settings.setAllowContentAccess(false); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { settings.setAllowFileAccessFromFileURLs(false); setAllowUniversalAccessFromFileURLs(webView, false); } setMixedContentMode(webView, "never"); // Fixes broken full-screen modals/galleries due to body height being 0. webView.setLayoutParams( new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); setGeolocationEnabled(webView, false); if (ReactBuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } return webView; }