0
私のアプリのユーザーに提示される前に、ページのhtmlとjavascriptで何らかの処理をしたいと思っています。このページはすべてのリンクに対してwindow.openを使用するため、アプリケーションによって制御されていない新しいブラウザウィンドウが開かれ、アプリケーションを使用しているような錯覚に陥ります。これは私が今持っているものですが、私はほとんどの部分でうまくいくと思います。ページが読み込まれた後にJavascriptInterfaceでメソッドを実行
class LinkFixer
{
static HashMap<String,String>pages = new HashMap<String,String>();//static so multiple pages can access it
public void processPage(String html)
{
html = html.replace("window.open","LinkFixer.openInNewTab");
}
public void openInNewTab(String url, String targetName)
{
if(!pages.containsKey(targetName))//targetName is unique for every link
{
pages.put(targetName,url);
//add new tab to my TabHost, which will contain a WebView with page from url loaded
}
//move user to tab
}
}
WebView browser = (WebView)findViewById(R.id.browser);
browser.getSettings().setJavaScriptEnabled(true);
browser.addJavascriptInterface(new LinkFixer(), "LinkFixer");
browser.loadUrl("http://serverIP:port/mobilecontrol.html");
//something to make the browser execute LinkFixer.processPage goes here
私はそれを持っているだろう問題は、私はページの読み込みが完了したときにページがLinkFixer.processPageを実行するだろうかわからないということです。それ以外は、コードがうまくいくと思います。助言がありますか?