我想在网页上放一个“关闭”按钮(我们的客户想要这样做)
当我单击此按钮时,我想关闭浏览器(不是当前选项卡,而是Android浏览器,IE,Firefox,Chrome等中的“浏览器”)。
我已经四处寻找并找到了一种方法:window.close()
但似乎只适用于IE
我的问题是:
有没有办法使用Javascript关闭Android浏览器?
答案 0 :(得分:4)
这是不可能的,也永远不会。
答案 1 :(得分:4)
Nope - 这是一件好事:网页没有乱搞浏览器本身(“等等,我的窗口在哪里?我有30个标签 - 噗,不见了!”),更不用说了明显的漏洞:
答案 2 :(得分:1)
Android浏览器允许JavaScript仅关闭弹出窗口。因此,除非已将其创建为弹出窗口,否则无法关闭窗口。
答案 3 :(得分:1)
嗯,一个简单的解决方法是创建一个具有全屏WebView控件的活动,在那里显示你的HTML内容(本地或从互联网),并添加一个按钮来关闭这个窗口,回调到Java关闭此活动。以下是您需要的所有代码:
browser.xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#404040"
android:id="@+id/mainLayout"
>
<WebView android:id="@+id/webkit"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="2dp"
android:layout_weight="1"
android:scrollbars="vertical"
android:visibility="visible"
/>
</LinearLayout>
myBrowser.java活动(记得在AndroidManifest.xml中声明它):
public class myBrowser extends Activity {
protected WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// if you don't want app title bar...
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.browser);
webView = (WebView) findViewById(R.id.webkit);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavaCallback(), "JCB");
// get the URL to navigate to, sent in Intent extra
Intent intent = getIntent();
if (intent != null) {
String sUrl = intent.getStringExtra("url");
if (sUrl != null)
webView.loadUrl(sUrl);
}
}
final public class MyJavaCallback {
// this annotation is required in Jelly Bean and later:
@JavascriptInterface
public void finishActivity() {
finish();
}
}
}
在您的应用中的其他位置开始此活动的代码将是:
Intent intent = new Intent(context, myBrowser.class);
intent.putExtra("url", "http://www.someaddress.com/somepage.html");
startActivity(intent);
并且您的somepage.html网页可以有一个“关闭”按钮,其中包含以下代码:
<button onclick="JCB.finishActivity()">Close</button>
您可以添加其他按钮和回调,以便他们执行Android Java代码中所需的操作。调用另一种方式 - 从页面上的Java到JavaScript,也是可能的,例如:
webView.loadUrl("javascript:functionName(params)");
此外,如果要显示来自Internet的内容,而不是WebView控件中的本地文件或字符串,请记住向AndroidManifest.xml添加必要的权限:
<uses-permission android:name="android.permission.INTERNET" />
格雷格
答案 4 :(得分:1)
window.close()
实际上适用于添加到主屏幕(使用Chrome测试版)的网络应用。
它干净地关闭应用程序并返回主屏幕。