我创建了Activity
一个标题和Web视图LinearLayout
.在onResume()
它调用的方法中webView.loadUrl(url)
.问题是,活动首先显示标题,屏幕的其余部分为空白,然后启动设备浏览器以及URL的页面.我想看到的是页面显示在WebView
标题下方.可能是什么问题呢?
编辑:好的,做了一些进一步的搜索,发现了这个:
它指向这里的WebView
教程.
只需实现Web客户端并进行设置即可.
我有一个WebView
从Internet上加载页面.我想显示一个ProgressBar
直到加载完成.
我如何监听完成页面加载WebView
?
我有一个应用程序,我在WebView
其中显示一些网站.它有效,单击网页中的链接转到我的应用程序内的网站的下一页.但是当我点击手机的后退按钮时,它会直接进入我的应用程序.我想回到网站的上一页.我怎样才能做到这一点?
这是我正在使用的代码示例:
public class Webdisplay extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.webdisplay);
getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
Window.PROGRESS_VISIBILITY_ON);
Toast loadingmess = Toast.makeText(this,
"Cargando El Diario de Hoy", Toast.LENGTH_SHORT);
loadingmess.show();
WebView myWebView;
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.elsalvador.com");
myWebView.setWebViewClient(new WebViewClient());
myWebView.setInitialScale(1);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setUseWideViewPort(true);
final Activity MyActivity = this;
myWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100);
if(progress == 100)
MyActivity.setTitle(R.string.app_name);
}
});
}
}
Run Code Online (Sandbox Code Playgroud) 我已经加载了一个外部URL WebView
.现在我需要的是当用户点击加载页面上的链接时,它必须像普通浏览器一样工作并打开相同的链接WebView
.但它打开默认浏览器并在那里加载页面?
我启用了JavaScript.但它仍然无法正常工作.我忘记了什么吗?
我有一个本地html页面以及它所指向的其他几个资源(css文件和Javascript库),我想加载到WebView中.怎么能实现这一目标?
也许不是最好的方式,但我还在试验.
我正在拼凑一个廉价的应用程序,其中包括"框架"我们的一些网站...非常简单的WebViewClient
.直到我点击视频.
该视频是作为HTML5
元素完成的,这些在Chrome,iPhone上工作得很好,现在我们修复了它Android
在本机浏览器中运行良好的编码问题.
摩擦:WebView
不喜欢它.完全没有.我可以点击海报图片,没有任何反应.
谷歌搜索,我发现这是接近,但似乎是基于'链接'(如在href ...)而不是视频元素.(onDownloadListener似乎没有在视频元素上调用...)
我也看到覆盖onShowCustomView的引用,但似乎没有在视频元素上调用...还没有shouldOverrideUrlLoading ..
我宁愿不进入"从服务器拉xml,在应用程序中重新格式化"......通过在服务器上保留故事布局,我可以更好地控制内容而不强迫人们不断更新应用程序.因此,如果我可以说服WebView处理像本机浏览器这样的标签,那将是最好的.
我显然错过了一些明显的东西..但我不知道是什么.
"shouldOverrideUrlLoading"真的被弃用了吗?如果是这样,我可以使用什么呢?
似乎shouldOverrideUrlLoading
已经弃用了针对Android N的应用程序,我需要让应用程序自API 19开始工作,直到最新的Android N(测试版),我使用的是Android N中的一些新功能(如Data Saver),因此定位Marshmallow无法解决这个问题,因为我需要使用这些新功能,这是我使用的代码的一部分:
public boolean shouldOverrideUrlLoading(WebView webview, String url) {
if (url.startsWith("http:") || url.startsWith("https:")) {
...
} else if (url.startsWith("sms:")) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
这是Android Studio给我的消息:
覆盖'android.webkit.WebViewClient'中不推荐使用的方法此检查报告在指定的检查范围中使用不推荐的代码的位置.
我想知道是否使用@SuppressWarnings("deprecation")
将让我在API 19上工作直到最新的Android N Beta(及其发布时的最终版本),我无法自己测试,我从未使用过,我需要确定它有效,所以,任何人都能说出来?
android deprecated webview android-webview deprecation-warning
我的问题是网页没有加载到webview中.
mWebview.loadUrl("http://www.google.com");
启动网络浏览器......
这是我活动的代码:
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class Main extends Activity {
private WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
mWebview.loadUrl("http://www.google.com");
setContentView(mWebview);
}
}
Run Code Online (Sandbox Code Playgroud)
我在Manifest中添加了所需的权限:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud) 所以现在在我的应用程序中我正在访问的URL有一个重定向,当发生这种情况时,WebView将打开一个新的浏览器,而不是留在我的应用程序中.有没有办法可以更改设置,以便View像正常一样重定向到URL,但是留在我的应用程序而不是打开新的浏览器?
编辑:
我想要重定向URL,我只是不知道如何创建它,所以获取该URL的唯一方法是通过一个导致重定向到我想要的URL.
例如:当您访问此处时:http://www.amazon.com/gp/aw/s/ref=is_box_/k=9780735622777,注意它如何将URL重定向到实际产品.在我的应用程序中,如果我在新的浏览器中打开它,它会很好地做到这一点,但是如果我用WebView将它保存在我的应用程序中,它将显示为正在搜索k = 9780735622777,如下所示:http://www.amazon.com/gp/aw/s/ref=is_s_?k=k%3D9780735622777&x=0&y=0.或者,它将在浏览器中打开视图并显示适当的内容.但是,我想在我的应用程序中保留所有内容.
所以我有一个引人入胜的问题.尽管我不是手动或以编程方式滚动我的视图,但我的WebView会在其内部数据加载后自动滚动到.
我在viewpager中有一个片段.当我第一次加载寻呼机时,它按预期工作,并显示所有内容.但是一旦我"翻页",数据就会加载,WebView会弹出到页面顶部,将视图隐藏在它上面,这是不可取的.
有谁知道如何防止这种情况发生?
我的布局看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/article_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="2dp"
android:text="Some Title"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/article_title"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/LL_Seperator"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="@color/text"
android:orientation="horizontal" >
</LinearLayout>
<WebView
android:id="@+id/article_content"
android:layout_width="match_parent"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/article_link"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:text="View Full Article"
android:textColor="@color/article_title"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
我也没注重任何事情.默认情况下,它似乎在加载后自动滚动到WebView.我该如何防止这种情况?
android android-layout android-webview android-scrollview android-viewpager
android ×10
android-webview ×10
webview ×2
deprecated ×1
html5 ×1
local ×1
url ×1
video ×1
webpage ×1