2011-01-30 39 views
6

Tôi đang cố gắng khởi chạy Hoạt động khi nhấp vào liên kết bên trong thành phần WebView.Android SDK WebView gọi Hoạt động

Xem trên web của tôi được tải bên trong Main.java và tôi muốn khởi chạy SubActivity.java khi nhấp vào liên kết bên trong Trang web nằm trong số Main.java?

Ngoài ra, làm cách nào để chuyển các tham số cho hoạt động này?

Ví dụ: inspection://Project/1

"Kiểm tra" là tên của ứng dụng của tôi, inspection là Hoạt động Tôi muốn để khởi động và 1 là ID Tôi muốn có.

+0

Bạn cũng nên xem bài viết này [Xây dựng ứng dụng web trong WebView] (http://developer.android.com/guide/webapps/webview.html) –

Trả lời

12

Bạn có thể sử dụng addJavaScriptInterface của WebView để cho phép JavaScript kiểm soát ứng dụng của bạn (trong trường hợp này, để cho phép JavaScript kích hoạt Intent khi liên kết được nhấp).

Để làm điều này bạn cần phải vượt qua một trường lớp liên kết với Javascript, đây có thể là một cái gì đó như sau:

private final class JsInterface { 
     public void launchIntent(final String payload) { 
     Activity.this.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       // use the payload if you want, attach as an extra, switch destination, etc. 
       Activity.this.startActivity(new Intent(Activity.this, SomeOtherActivity.class)); 
      } 
     }); 
     } 
    } 

Sau đó, bạn thêm rằng đến WebView với một cái gì đó dọc theo những dòng:

webView.addJavascriptInterface(js, "Android"); 

Sau đó, trong JavaScript từ WebView, bạn chỉ cần sử dụng phương thức "launchIntent" của đối tượng "Android" mới.

0

Một tùy chọn là ghi đè tải URL của chế độ xem web và chọn nhấp chuột bạn muốn khởi chạy hoạt động mới. Kiểm tra việc sử dụng một WebViewClient subclassed trong tài liệu:

http://developer.android.com/resources/tutorials/views/hello-webview.html

lựa chọn khác là để ràng buộc hoạt động của bạn để một chương trình URL tùy chỉnh. Nó khá phổ biến khi thực hiện OAuth phía máy khách, thường xuyên thông qua trình duyệt thay vì một WebView, nhưng nó cũng hoạt động tương tự như vậy. Có một ví dụ đầy đủ ở đây:

https://github.com/brione/Brion-Learns-OAuth

nào cho thấy làm thế nào để liên kết các chương trình xử lý url cũng như xử lý việc tung ra thông qua tiếp cận mục đích nó tạo ra (xem onResume() trong OAUTH.java).

0

Đầu Thêm phương pháp javascript trên nút của trang web của bạn onclick() Chức năng định nghĩa dưới đây ..

function showAndroidToast(toast) { 
    AndroidFunction.showToast(toast); 
} 

Android Mã là vào đây để Interface javascript ..

public class MyJavaScriptInterface { 
    Context mContext; 
    private Activity activity; 

     public MyJavaScriptInterface(Activity activiy) { 
      this.activity = activiy; 
     } 
@JavascriptInterface 
    public void showToast(String toast){ 
    Intent i=new Intent(getApplicationContext(), Subactivity.class); 

    i.putExtra("data", "tosecondActivity"); 
startActivity(i); 

}

Các vấn đề liên quan