2017-02-28 46 views

答えて

0

WebViewコンポーネントをWebViewコンポーネントに設定します。

browser = (WebView) findViewById(R.id.browser); 
browser.setWebViewClient(new InnerWebViewClient()); 

そしてWebViewClientクラス

private class InnerWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     return super.shouldOverrideUrlLoading(view, url); 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
    } 

    @Override 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 

    } 
} 

を拡張ここでは、文字列形式のようにURLを取得します。 WebivewのonTouchイベントは、最初のonPageStarted()メソッドを実行します。だからそこにあなたのパスのURLを取得します。

0

JSを使用して問題を解決しました。 I'm storing click coordinates in my db and then reloading them later and showing them on the site where the click happened, how do I make sure it loads in the same place?

InputStream is = getResources().openRawResource(R.raw.get_xpath); 
       Scanner s = new Scanner(is).useDelimiter("\\A"); 
       String javascript = s.hasNext() ? s.next() : ""; 
       myWebView.evaluateJavascript(javascript, null); 

と私のJSコードhere`s:

document.onclick= function(event) { 
    if (event===undefined) event= window.event;      // IE hack 
    var target= 'target' in event? event.target : event.srcElement; // another IE hack 

    var root= document.compatMode==='CSS1Compat'? document.documentElement : document.body; 
    var mxy= [event.clientX+root.scrollLeft, event.clientY+root.scrollTop]; 

    var path= getPathTo(target); 
    var txy= getPageXY(target); 
    alert('Clicked element '+path+' offset '+(mxy[0]-txy[0])+', '+(mxy[1]-txy[1])); 
} 

function getPathTo(element) { 
    if (element.id!=='') 
     return 'id("'+element.id+'")'; 
    if (element===document.body) 
     return element.tagName; 

    var ix= 0; 
    var siblings= element.parentNode.childNodes; 
    for (var i= 0; i<siblings.length; i++) { 
     var sibling= siblings[i]; 
     if (sibling===element) 
      return getPathTo(element.parentNode)+'/'+element.tagName+'['+(ix+1)+']'; 
     if (sibling.nodeType===1 && sibling.tagName===element.tagName) 
      ix++; 
    } 
} 

function getPageXY(element) { 
    var x= 0, y= 0; 
    while (element) { 
     x+= element.offsetLeft; 
     y+= element.offsetTop; 
     element= element.offsetParent; 
    } 
    return [x, y]; 
} 
を私がここに来た JSソリューション
関連する問題