我如何在Android模拟器中存储一个静态html页面,然后在运行时从WebView查看它?
我正在开发一个应用程序,我在webview中从外部URL加载网页.页面加载需要花费大量时间.如果我在Android的本机浏览器中打开相同的URL,加载绝对正常,但在我的自定义webview中性能非常糟糕.
这是我的customWebView Activity的onCreate方法.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_web_view);
String uri = getIntent().getExtras().getString("uri");
webView = (WebView) findViewById(R.id.cus_webview);
dialog = ProgressDialog.show(CustomeWebViewActivity.this, "", "Loading. Please wait...", true, true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
webView.getSettings().setPluginsEnabled(false);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSavePassword(false);
webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
webView.setWebChromeClient(new MyWebChromeClient());
webView.clearCache(true);
webView.clearHistory();
webView.loadUrl(uri);
webView.setWebViewClient(new MyWebView());
}
Run Code Online (Sandbox Code Playgroud)
我有什么办法可以通过我的自定义Web视图减少网页的加载时间.请,任何帮助表示赞赏.
我正在开发一个带phonegap + sencha touch2 + android的应用程序.我有一个面板显示包含电子邮件的各种内容,一些文本形式的数字.因为它是一个WebView,当我点击数字,并且默认的MailCompose活动开始,当我点击数字拨号器活动开始.如何禁止这种情况发生.在为WebView加载url或web设置之前,是否有一些我在android端缺少的配置.或者来自Phonegap的东西,因为当我看到log cat它显示以下行 -
DroidGap.startActivityForResult(intent,-1)
android-intent android-webview android-websettings sencha-touch-2 cordova
首先,我希望WebView可以滚动,但它需要表现得像一张图片,这样滚动不会导致WebView重新排列其布局以适应屏幕.当页面真的比屏幕大时,它应该只提供滚动条.
我已经阅读了如何在缩放时阻止android webview包装内容?.除了执行双击之外,它可以工作.
要重新生成问题,
1.我将一个充满文本的网页加载到全屏WebView.
2.双击屏幕右侧.< - 这里只是放大,没问题
3.双击屏幕左侧.
问题来了.文本重新排列.当我缩放到原始比例.文字只填写屏幕的一半.
无论发生什么事情,如何阻止webView重新排列其布局?
我在Android Studio中创建了一个片段示例
并删除标签并添加webview看起来像:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$DummySectionFragment">
<WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/webView"
android:layout_margin="0dp"
android:layout_alignParentRight="true"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

它在webview上有余量..
那么,我如何才能使webview填满这一领域呢?
我在shouldoverrideurlloading方法中遇到了麻烦,其中被覆盖的URL未显示.相反,一个空白的白色屏幕即将出现,Logcat没有显示任何错误.我在下面提供了代码.我犯了什么错误?请指教
package com.example.webviewkm;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.View;
import android.webkit.HttpAuthHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.MyWebView);
webView.setInitialScale(67);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
webView.setWebViewClient(new WebViewClient() { …Run Code Online (Sandbox Code Playgroud) 我在将外部html文件加载到webview时遇到问题.我以前做过这个并且它应该很容易,但由于某种原因,我一直无法获得网页.
我知道文件在目录中,因为我自己使用文件浏览器放置它们.
String filename = "file:///"+ Environment.getExternalStorageDirectory() + File.separator + "Android/data/com.example/files/test_html2.html";
webview.loadUrl(filename);
Run Code Online (Sandbox Code Playgroud)
我已经尝试将文件移动到root并尝试在那里,我已经删除了file://并将其替换为content://并且什么都没有.我已在清单中读取权限.
有任何想法吗?
我有一个加载在 Android 片段中的 web 视图。当用户点击 webview 中加载的网页上的链接时,我希望在我的应用程序之外的 Android 上的默认浏览器中加载新页面。任何想法如何做到这一点?谢谢!
到目前为止我所拥有的:
FrameLayout layout = new FrameLayout(context);
WebView webView = new WebView(getActivity());
webView.setBackgroundColor(Color.TRANSPARENT);
webView.loadUrl(InvestBetterURL);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
return false;
}
@Override
public void onPageStarted (WebView view, String url, Bitmap favicon)
{
view.setVisibility(View.GONE);
}
@Override
public void onPageFinished (WebView view, String url)
{
view.setVisibility(View.VISIBLE);
}
});
layout.addView(webView);
Run Code Online (Sandbox Code Playgroud) 我已经开发了一个具有一个Web视图和一个进度条的应用程序,所以我想在加载网页的进度条中添加显示进度等功能,以便它如何实现我有我放在这里的代码.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (WebView) findViewById(R.id.web);
progressBar = (ProgressBar) findViewById(R.id.progrss);
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("http://www.technotalkative.com");
}
public class myWebClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
} …Run Code Online (Sandbox Code Playgroud) 我是一名业余编码员,试图四处游玩和探索。我的编码水平是相当新手。我一直在尝试在 Xamarin 中构建一个简单的应用程序。它所包含的只是一个加载我网站的 webView。就是这样。当我尝试构建时,出现以下错误,我似乎无法找到答案。有人可以帮忙吗?
严重性代码描述项目文件行抑制状态警告 CS0672 成员“MainActivity.HelloWebViewClient.ShouldOverrideUrlLoading(WebView, string)”覆盖过时的成员“WebViewClient.ShouldOverrideUrlLoading(WebView, string)”。将 Obsolete 属性添加到“MainActivity.HelloWebViewClient.ShouldOverrideUrlLoading(WebView, string)”。pnbApp D:\Workspace\PNB_App\pnbApp\pnbApp\MainActivity.cs 29 活动
这是它在代码中失败的部分:
> public class HelloWebViewClient : WebViewClient
> {
> public override bool ShouldOverrideUrlLoading(WebView view, string url)
> {
> view.LoadUrl(url);
> return true;
> }
> }
Run Code Online (Sandbox Code Playgroud)
提前致谢。