【发布时间】:2017-02-22 16:28:11
【问题描述】:
上一篇文章来自这里android studio webview get data and onfinish。我实际上无法从这些答案中得到我想要的。也许我应该问得更清楚一些。我实际上使用 webview 来加载内容页面。然后在内容页面里面,有一些链接也是我自己创建的本地html。所以流程就像
android 活动 -> webview -> 内容页面 -> 游戏页面。
我实际上想在游戏页面中检索一个局部变量marks。所以我创建了一个exit 按钮,用于关闭页面并返回android 活动,以及将marks 带回android 活动。
于是我自己查了一些资料,发现window.close()不行。所以我更改了当前的 URL 以指示单击了退出按钮。然后从 URL 中提取 marks 并将其存储在 android 活动中。但它不适用于我下面的代码,我认为这可能是因为当我在内容页面时使用了该方法。我希望有人可以帮助做到这一点,因为我真的找不到问题。我已将代码编辑如下:
我在 android 中的活动:
private WebView webview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
try {
webview.loadUrl("file:///android_asset/index.html");
webview.setWebViewClient(new WebViewClient()
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.contains("?marks=")){
finish();} // close activity
else{
view.loadUrl(url);}
return true;
});
}
catch(Exception ex)
{
ex.printStackTrace();
}
setContentView(webview);
}
我的退出按钮是一个 div:
<div class="exit" onclick="finish()">Exit</div>
我将使用finish()函数返回变量并关闭网页回到android中的活动。
function finish() {
document.location.href= window.location.href +"?marks=" + marks;
}
【问题讨论】:
标签: javascript android html webview