WebView起步1

來源:互聯網
上載者:User

標籤:

  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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.