gpt4 book ai didi

Android 在 WebView 中打开 URL

转载 作者:行者123 更新时间:2023-12-05 00:09:13 24 4
gpt4 key购买 nike

我首先要创建 Android 测试应用。

我正在使用 webview 表单,我插入了一些 url,当我运行应用程序时它工作正常。

但是当我打开应用程序并单击其他页面链接时,我会得到选择的列表,例如,在“谷歌浏览器”上打开它。但是我想在 webview 中打开它。

我认为解释清楚了。

Activity 邮件.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp" tools:context=".MainActivity">

<WebView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/webView"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
/>
</RelativeLayout>

主 Activity .java

package com.example.webviewapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String url = "http://example.com";
WebView view=(WebView) this.findViewById(R.id.webView);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl(url);

}
}

谢谢!

最佳答案

您需要创建一个 WebViewClient

并覆盖 shouldOverrideUrlLoading() 方法

试试这个:

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

WebView view = (WebView) findViewById(R.id.webView1);
view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl("http://example.com");
}

来自shouldOverrideUrlLoading的文档

Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView. If WebViewClient is not provided, by default WebView will ask Activity Manager to choose the proper handler for the url. If WebViewClient is provided, return true means the host application handles the url, while return false means the current WebView handles the url.

关于Android 在 WebView 中打开 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com