2

我的来源:

    public class MainActivity extends DroidGap {
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.loadUrl("file:///android_asset/www/index.html");
    }


    @Override
        public boolean dispatchTouchEvent(MotionEvent e) {
            super.dispatchTouchEvent(e);
    // Now what page ??

            return true;
        }

如何获取当前网页?

4

1 回答 1

2

创建一个外部 javascript 文件,在其中写入以下代码:

<script>
document.getElementByTagName("body").addEventListener('touchstart',touchPagePressed);// you can use 'onclick' also
function touchPagePressed()
{
   alert(touchPagePressed');
   var sPath=window.location.pathname; 
   var sPage = sPath.substring(sPath.lastIndexOf('/') + 1); 
   alert(sPage); 
   MyAndroid.performClick(sPage);
}
</script>

在每个 html 页面中包含该外部 js 文件。

在此之后,在您的 onCreate 方法中编写以下代码:

public class MainActivity extends DroidGap {
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");

        WebView webView = (WebView) findViewById(R.id.webView);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.addJavascriptInterface(new Object()
             {
                public void performClick(String currentPageName)
                {
                   // Deal with a click on the body tag
                   System.out.println("PageName- "+currentPageName);  
                }
             },"MyAndroid");
}
}
于 2012-11-21T10:57:00.293 回答