【问题标题】:Intent on Button Click inside webview in androidIntent on Button Click inside webview in android
【发布时间】:2016-03-22 10:58:03
【问题描述】:

enter code here我是安卓开发新手。我目前正在开发一个使用 webview 的应用程序。在那个 web 视图中,我传递了一个 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();





}

}

【问题讨论】:

  • 请把你的xml文件放进去
  • 您需要在您的WebView 上致电setWebViewClient
  • 我正在使用 setWebViewClient 但我不确定如何在按钮中调用 Onclick。 web.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; }
  • 您说有退出网页的功能。如果这是真的,那肯定会奏效。你能把你的Java代码贴在这里吗?

标签: android webview


【解决方案1】:

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

本指南将为您提供一个很好的设置方法。

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

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

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

【讨论】:

    【解决方案2】:

    您可以在 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
                }
            });
    

    【讨论】:

    • 但是webview里面已经有一个按钮了。我需要的是在我的 webview 中调用按钮的 onclick
    • 那我觉得这个链接可以帮到你:
    • 在 webview 中,当它被加载时,一个网站会打开并且里面有一个按钮。我需要调用这个按钮的点击
    • Pfff 我对此一无所知,我不确定你能做到,对不起!
    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多