首页 > 代码库 > WebView起步1

WebView起步1

  1. 权限加入
    1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  2. 设置WebView可用
    1. WebView webview = (WebView)findViewById(R.id.vew);
    2. webview.getSettings().setJavaScriptEnabled(true);
    3. webview.loadUrl("http://www.baidu.com");

  3. 如果点击VebView中,希望继续在当前浏览器中相应,而不是在新的浏览器中相应,则必须加入如下代码
    1. webview.setWebViewClient(new WebViewClient(){
    2. public boolean shouldOverrideUrlLoading(WebView view, String url) {
    3. view.loadUrl(url);
    4. return true;
    5. }
    6. });


  4. 如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
    1. public boolean onKeyDown(int keyCode, KeyEvent event) {
    2. if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
    3. webview.goBack();
    4. return true;
    5. }
    6. return super.onKeyDown(keyCode, event);
    7. }


  5. 实例,和js交互
    1. <!doctype html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>demo</title>
    6. <script>
    7. function wave(){
    8. document.getElementById(‘button‘).value = ‘aaaaaaa‘;
    9. }
    10. </script>
    11. </head>
    12. <body>
    13. <input type="button" id="button" value="点我试试看" onClick="alert(1);window.demo.clickOnAndroid()" />
    14. </body>
    15. </html>
    1. WebView webview;
    2. private Handler mHandler = new Handler();
    3. @Override
    4. protected void onCreate(Bundle savedInstanceState) {
    5. super.onCreate(savedInstanceState);
    6. setContentView(R.layout.activity_main);
    7. webview = (WebView)findViewById(R.id.vew);
    8. webview.getSettings().setJavaScriptEnabled(true);
    9. webview.setWebViewClient(new WebViewClient(){
    10. public boolean shouldOverrideUrlLoading(WebView view, String url) {
    11. view.loadUrl(url);
    12. return true;
    13. }
    14. });
    15. webview.addJavascriptInterface(new androidclick() , "demo");
    16. webview.loadUrl("file:///android_asset/demo.html");
    17. }
    18. private final class androidclick{
    19. public void clickOnAndroid(){
    20. mHandler.post(new Runnable() {
    21. public void run() {
    22. webview.loadUrl("javascript:wave()");
    23. }
    24. });
    25. }
    26. }


  6. 为了让WebView从apk文件中加载assets,Android SDK提供了一个schema,前缀为"file:///android_asset/"。WebView遇到这样的schema,就去当前包中的 assets目录中找内容。如上面的"file:///android_asset/demo.html" 

 


来自为知笔记(Wiz)


WebView起步1