简体   繁体   English

如何从html文件中检测div标签?

[英]how to detect div tag from html file?

I am loading html page in web view. 我正在Web视图中加载html页面。 In html there is a button; 在html中有一个按钮; on click of that, I have to start a new activity. 点击后,我必须开始一个新活动。 I have displayed html file but how to detect the click of button ? 我已经显示了html文件,但是如何检测按钮的单击?

html code for button: There is separate css file defined for button. 按钮的html代码:为按钮定义了单独的css文件。

<div id="button">
     <ul>
         <li><a title="Forming a Habit" href="Forming_Habit.html">
             More
             <span class="arrows">
                 &nbsp;&#187;
             </span>
         </a></li>
     </ul>
 </div>

code for loading html: 加载html的代码:

webView.setWebViewClient(new MyWebViewClient());

        WebSettings webSetting = webView.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
        //webSetting.setBuiltInZoomControls(true);
        webSetting.setAllowContentAccess(true);

        webSetting.setDefaultTextEncodingName("utf-8");
        webView.loadUrl("file:///android_asset/"+htmlFile);

webViewClient class: webViewClient类:

@Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        view.addJavascriptInterface(new Object(){
        return true;
    }

Please guide me. 请指导我。

use this : 用这个 :

Html: HTML:

 <div id="button" onclick="Helper.methodeone()">
 <ul>
     <li><a title="Forming a Habit" href="Forming_Habit.html">
         More
         <span class="arrows">
             &nbsp;&#187;
         </span>
     </a></li>
 </ul>

on java : 在java上:

    webView.setWebViewClient(new MyWebViewClient());
    WebSettings webSetting = webView.getSettings();
    webSetting.setJavaScriptEnabled(true);
    webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
    //webSetting.setBuiltInZoomControls(true);
    webSetting.setAllowContentAccess(true);
    web.addJavascriptInterface(new Samlplejavaconect(), "Helper");//NEW LINE
    webSetting.setDefaultTextEncodingName("utf-8");
    webView.loadUrl("file:///android_asset/"+htmlFile);

And in below class you can manage activity : 在下面的课程中,您可以管理活动:

public class Samlplejavaconect {
    public void methodeone() {
        Toast.makeText(this, "Hi", Toast.LENGTH_LONG).show();//FOR EXAMPLE
    }
}

Try this 尝试这个

MainActivity.java MainActivity.java

public class MainActivity extends Activity {
WebView webView;
JavaScriptInterface jsInterface;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView = (WebView) findViewById(R.id.webView1);
    WebSettings webSettings = webView.getSettings();
    // enable JavaScript
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebChromeClient(new WebChromeClient() {
    });
    jsInterface = new JavaScriptInterface(MainActivity.this, webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(jsInterface, "AndroidFunction");
    webView.loadUrl("file:///android_asset/book.html");
}

public class JavaScriptInterface {
    private Activity activity;
    WebView wb;

    public JavaScriptInterface(Activity activiy, WebView wb) {
        this.activity = activiy;
        this.wb = wb;
    }
    @JavascriptInterface
    public void activity() {
        try {
            Class activity = Class.forName("com.example.classname");
            Intent myIntent = new Intent(getApplicationContext(), activity);
            startActivity(myIntent);
            finish();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

}

}

book.html book.html

<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="startactivity()">Click Me!</button>
<script>
function startactivity() {
   AndroidFunction.activity();
}
</script>
</body>
</html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM