{"id":713,"date":"2023-02-26T15:20:40","date_gmt":"2023-02-26T07:20:40","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=713"},"modified":"2023-04-29T17:16:45","modified_gmt":"2023-04-29T09:16:45","slug":"android-webview-basic-settings-and-listening-settings","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/02\/26\/android-webview-basic-settings-and-listening-settings\/","title":{"rendered":"Android WebView\u57fa\u672c\u8bbe\u7f6e\u53ca\u76d1\u542c\u8bbe\u7f6e"},"content":{"rendered":"<h2>WebView\u57fa\u672c\u8bbe\u7f6e<\/h2>\n<p>WebView\u57fa\u7840\u8bbe\u7f6e\uff0c\u5b9e\u73b0WebView\u52a0\u8f7d\u6570\u636e<\/p>\n<p><!-- more --><\/p>\n<pre><code class=\"language-java\">WebSettings webSettings = mWebView.getSettings();\n\n\/\/ \u652f\u6301JavaScript\uff0c\u5141\u8bb8WebKit\u6267\u884cJavaScript\u4ee3\u7801\nwebSettings.setJavaScriptEnabled(true);\n\n\/\/ \u8bbe\u7f6e\u7f13\u5b58\u6a21\u5f0f\nwebSettings.setCacheMode(WebSettings.LOAD_DEFAULT);\n\n\/\/ \u8bbe\u7f6e\u4e3atrue\u8868\u793a\u652f\u6301\u4f7f\u7528JavaScript\u6253\u5f00\u65b0\u7684\u7a97\u53e3\nwebSettings.setJavaScriptCanOpenWindowsAutomatically(true);\n\n\/\/ \u7f51\u9875\u9700\u8981\u4fdd\u5b58\u4e00\u4e9b\u6570\u636e\u65f6\u5019\uff0c\u8bbe\u7f6e\u4ee5\u4e0b\u5c5e\u6027\nwebSettings.setDomStorageEnabled(true);\n\n\/\/ \u8bbe\u7f6e\u4e3a\u4f7f\u7528WebView\u63a8\u8350\u7684\u7a97\u53e3\nwebSettings.setUseWideViewPort(true);\n\n\/\/ \u81ea\u9002\u5e94\u5c4f\u5e55\nwebSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);\nwebSettings.setLoadWithOverviewMode(true);\n\n\/\/ \u8bbe\u7f6e\u662f\u5426\u542f\u7528\u5730\u7406\u4f4d\u7f6e\nwebSettings.setGeolocationEnabled(true);\n\n\/\/ \u8bbe\u7f6e\u53ef\u4ee5\u652f\u6301\u7f29\u653e\nwebSettings.setSupportZoom(true);\n\n\/\/ \u8bbe\u7f6e\u51fa\u73b0\u7f29\u653e\u5de5\u5177\uff0c\u7f29\u653e\u529f\u80fd\u662f\u5426\u4f7f\u7528\nwebSettings.setBuiltInZoomControls(false);\n\n\/\/ \u8bbe\u7f6e\u7f51\u9875\u6e32\u67d3\u4f18\u5148\u7ea7\nwebSettings.setRenderPriority(RenderPriority.HIGH);\n\n\/\/ \u8bbe\u7f6e\u6c34\u5e73\u6eda\u52a8\u6761\nwebview.setHorizontalScrollBarEnabled(false);\n\n\/\/ \u8bbe\u7f6e\u5782\u76f4\u6eda\u52a8\u6761\nwebview.setVerticalScrollbarOverlay(true);\n\n\/\/ \u8bbe\u7f6e\u6eda\u52a8\u6761\u7684\u6837\u5f0f\nwebview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);\n\n\/\/ \u91cd\u5199WebChromeClient\u76d1\u542c\u7f51\u9875\u52a0\u8f7d\u7684\u8fdb\u5ea6\nwebview.setWebChromeClient(new WebChromeClient() {\n    @Override\n    public void onProgressChanged(WebView view, int newProgress) {\n        super.onProgressChanged(view, newProgress);\n    }\n});\n\n\/\/ \u91cd\u5199WebViewClient\u53ef\u4ee5\u76d1\u542c\u7f51\u9875\u7684\u8df3\u8f6c\u548c\u8d44\u6e90\u52a0\u8f7d\u7b49\u7b49\nwebview.setWebViewClient(new WebViewClient());<\/code><\/pre>\n<h2>WebView\u76d1\u542c\u8bbe\u7f6e<\/h2>\n<h3>\u9875\u9762\u52a0\u8f7d\u8fdb\u5ea6\u76d1\u542c<\/h3>\n<pre><code class=\"language-java\">mWebView.setWebChromeClient(new WebChromeClient() {\n    @Override\n    public void onProgressChanged(WebView view, int newProgress) {\n        super.onProgressChanged(view, newProgress);\n    }\n});<\/code><\/pre>\n<h3>\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u4e0e\u52a0\u8f7d\u5931\u8d25\u7684\u76d1\u542c<\/h3>\n<pre><code class=\"language-java\">mWebView..setWebViewClient(new webClient() {\n    @Override\n    public void onPageFinished(WebView view, String url) {\n        super.onPageFinished(view, url);\n    }\n\n    @Override\n    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {\n        super.onReceivedError(view, errorCode, description, failingUrl);\n        view.loadUrl(&quot;file:\/\/\/android_asset\/default_page\/index.html&quot;);\n    }\n});<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>WebView\u57fa\u672c\u8bbe\u7f6e WebView\u57fa\u7840\u8bbe\u7f6e\uff0c\u5b9e\u73b0WebView\u52a0\u8f7d\u6570\u636e WebSettings webSe [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[119],"tags":[67],"class_list":["post-713","post","type-post","status-publish","format-standard","hentry","category-android-ui","tag-webview"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=713"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/713\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}