按钮上的意图单击android

时间:2016-03-22 10:58:04

标签: android webview

enter code here我是Android开发新手。我目前正在开发一个使用webview的应用程序。在该webview中,我传递了一个url,当url加载时,相应的页面在网页内部有一个按钮,该按钮具有退出网页的功能。我的要求是获得该按钮的点击功能。怎么可能在android中实现它。如果有人知道请帮助

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />





public class WebviewActivity extends Activity {

WebView web;
String rooId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);
    Intent intent = getIntent();
    rooId = intent.getStringExtra("RoomId");
    Log.e("Roominer", "Roominer" + rooId);
    web = (WebView) findViewById(R.id.webView1);



    WebSettings settings = web.getSettings();
    settings.setJavaScriptEnabled(true);
    web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

    web.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.i("", "Processing webview url click...");
            view.loadUrl(url);
            return true;
        }

        public void onPageFinished(WebView view, String url) {
            Log.i("", "Finished loading URL: " + url);

        }

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
           Toast.LENGTH_SHORT).show();





}

}

2 个答案:

答案 0 :(得分:1)

要将Java代码和Javascript代码链接在一起,您可以使用称为JavascriptInterface的东西

本指南将为您提供一个好主意。

https://developer.android.com/guide/webapps/webview.html

不要忘记在您想要使用的方法上方添加@JavascriptInterface注释。这是在SDK 17中实现的:

  

警告:如果您已将targetSdkVersion设置为17或更高,则必须将@JavascriptInterface注释添加到您希望网页代码可用的任何方法(该方法也必须公开)。如果您未提供注释,则在Android 4.2或更高版本上运行时,您的网页将无法访问该方法。

答案 1 :(得分:-1)

您可以在xml文件中定义一个按钮:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />

<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

并在按钮处设置onClickListener:

button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Put the action
            }
        });