标签: android-webview

setJavaScriptEnabled的替代解决方案(true);

我开发了一个使用Webview Component的Android应用程序.我在代码中使用了以下行,

webViewScores.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)

由于这一行,它显示Lint警告,因为Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully.我知道我可以通过@SuppressLint("SetJavaScriptEnabled")在我的方法或类级别上面写这一行来抑制此警告.但我的问题是,这有什么替代解决方案吗?我的意思是我们可以在Webview中设置Java Script吗?

android android-webview

35
推荐指数
4
解决办法
2万
查看次数

Android WebView VS手机浏览器

我已经经历了怪异的行为的大量使用WebViewAndroid,我不知道为什么有之间那么多diffrences WebViewBrowser安装在每台手机上?

举个例子,我已经开发了一些应用程序,必须要显示HTML的内容,这无论是包含jquery-mobile,flash,javascript,YouTube嵌入式等.所以我在里面显示这些页面时遇到了很多问题WebViews.它们根本不会显示,只是空白,视频无法播放等等.奇怪的是,如果在Browser手机上安装打开它们,它们可以正常工作.我启用了JavaScript,我尝试了不同WebSettings,我已经设置WebChromeClientWebViewClient寻找javascript错误......但没有任何效果.

所以我得出结论,该WebView组件Browser与手机上安装的应用程序完全不同.我想每个制造商都会自己Browser支持尽可能多的页面,而WebView剩下的就是标准的,包括在内Android SDK.

我对吗?或者还有其他原因/解释?谢谢.

编辑: @ondoteam建议的所有内容都已启用并暂时设置.我不再有那些网站的引用,无论如何都是内部的.

android android-webview android-browser

34
推荐指数
3
解决办法
2万
查看次数

Android WebView文件上传

我正在开发一款Android应用.基本上它是一个WebView和一个progressBar.Facebook的移动网站(m.facebook.com)被加载到WebView.

当我单击"选择文件"按钮上传图像时,没有任何反应.我已经尝试了所有解决方案,但没有一个能够正常工作.我正在测试运行4.0.3的Galaxy Note(GT-N7000).我的最低SDK版本是版本8.

我的应用程序

这是我的代码了解更多信息......

public class IStyla extends Activity {
    private ValueCallback<Uri> mUploadMessage;
    private final static int FILECHOOSER_RESULTCODE = 1;

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == FILECHOOSER_RESULTCODE) {
            if (null == mUploadMessage)
                return;
            Uri result = intent == null || resultCode != RESULT_OK ? null
                    : intent.getData();
            mUploadMessage.onReceiveValue(result);
            mUploadMessage = null;

        }
    }
    private class MyWebChromeClient extends WebChromeClient {
        public void openFileChooser(ValueCallback<Uri> uploadMsg) {
            mUploadMessage = uploadMsg;
            Intent i …
Run Code Online (Sandbox Code Playgroud)

java android file-upload android-webview

34
推荐指数
3
解决办法
4万
查看次数

HttpURLConnection(java.net.CookieManager)和WebView(android.webkit.CookieManager)之间的cookie的双向同步

不幸的是,Android上有很多cookie管理器.Cookie HttpURLConnection由以下人员维护,java.net.CookieManagerCookie WebView由以下人员维护android.webkit.CookieManager.这些cookie存储库是独立的,需要手动同步.

我的应用程序使用HttpURLConnections和显示WebViews(它是本机HTML混合).当然,我希望两者共享所有cookie - 所以我将在整个过程中进行透明会话.

进一步来说:

  1. 在HttpURLConnection中设置/更改cookie时,我希望WebViews也能看到此更改.
  2. 在WebView中设置/更改cookie时,我希望下一个HttpURLConnections也能看到此更改.

简单地说 - 我正在寻找双向同步.或者甚至更好,让它们都使用相同的cookie存储库.您可以假设它们同时处于活动状态(如在不同的选项卡上).

问题:

  1. 有没有办法让两个使用相同的cookie存储库?

  2. 如果没有,建议的做法是手动同步?什么时候我应该同步,怎么样?

相关问题:这个问题解决了类似的问题,但只实现了单向同步(HttpURLConnection - > WebView).

我最好的想法:我真的想避免手动同步,所以我试着想如何让两者都使用相同的存储库.也许我可以创建自己的扩展核心处理程序java.net.CookieManager.我将使用它将其设置为核心cookie处理程序java.net.CookieHandler.setDefault().它的实现将是android.webkit.CookieManager处理程序实例的代理(对于我只是访问webkit管理器的每个函数).

cookies android http httpurlconnection android-webview

34
推荐指数
1
解决办法
1万
查看次数

WebView不会在Android 4.0.x Ice Cream Sandwich中的应用程序启动时呈现本地HTML页面

我知道在这个论坛上已经以不同的格式提出了这个问题,但是到目前为止,没有一个答案 - 我接受或其他方式帮助了我.

我正在开发一个混合应用程序,它使用原生的Android,HTML和Adboe的Flex SDK(没有任何框架,如PhoneGap等,使用Android自己的WebView直接代码).

这是我面临的问题:

当应用程序启动时,首先触发flex sdk 的活动"AppEntry",它是一个空白活动,它只是设置flex SDK的上下文和初始设置.接下来,启动本机MainActivity,它使用WebView加载HTML项目.在Android 4.0.x(ICS)上,即使加载了URL,webview也会显示为空白(白色)(对于相关URL,已成功调用onPageFinished()).这是在第一次安装和启动应用程序时发生的,在停止应用程序后(通过从最近的应用程序栏中删除它),页面按预期加载.像这样重复重新启动有时会重现问题但频率不可预测.

有些事情需要考虑:

  1. 由于flex sdk约束,这些HTML文件不能直接存储在'/ assets'文件夹中,而是存储在assets文件夹中的目录结构中.

  2. 问题只发生在冰淇淋三明治上(我想知道的问题)!

我已经尝试过的东西:

  1. 硬件加速关闭(开/关无关紧要,两者都测试)

2.

WebSettings settings = webView.getSettings();        
        settings.setJavaScriptEnabled(true);
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
        settings.setSupportMultipleWindows(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setLoadsImagesAutomatically(true);
        settings.setDomStorageEnabled(true);
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        settings.setSaveFormData(true);
        settings.setAllowFileAccess(true);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
            settings.setAllowContentAccess(true);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                settings.setAllowFileAccessFromFileURLs(true);
                settings.setAllowUniversalAccessFromFileURLs(true);
            }
        }
        settings.setAppCacheEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setLoadsImagesAutomatically(true);
        boolean enableZoom = true;
        settings.setBuiltInZoomControls(enableZoom);
        settings.setSupportZoom(enableZoom);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
            initializePluginAPI(webView);
        }
        settings.setDatabaseEnabled(true);
Run Code Online (Sandbox Code Playgroud)

问题是在Play商店中删除我的应用评论评论.任何帮助或见解将不胜感激.

apache-flex android webview android-webview android-4.0-ice-cream-sandwich

34
推荐指数
1
解决办法
1200
查看次数

在Android webview中缓存

在Android webview中加载移动网页和非移动网页的速度更快; 加载缓存还是根本不加载?

什么是推荐的加载方式?

现在,当我不在所有非移动站点加载缓存时,加载速度比在本机浏览器中加载缓存要慢得多.

android caching webview android-webview

33
推荐指数
2
解决办法
8万
查看次数

Android webview加载数据性能非常慢

嗨,我正在开发一个应用程序,因为我正在使用Android WebView.每当我启动webview活动时,从test.txt文件加载字符串html格式的数据.test.txt文件包含近2.5 MB的数据,加载test.txt文件后,如果幻灯片屏幕结束,则读取所有数据并按回.然后,随后启动webview活动需要更多时间来呈现数据.在第一次推出webview时,它花费的时间很少.在启动此活动之间,我没有收到任何错误/异常/崩溃.

我使用的是Android API等级18及以上版本

注意:我在这个问题上做了很多研究.我尝试从Android webview的解决方案Android WebView性能没有用.

我不能使android:hardwareAccelerated ="true" < - 为什么因为它有很多副作用(我仍然使用这个,但我没有在这个问题上发现任何变化).

我不能使用 webview.getSettings().setRenderPriority(RenderPriority.HIGH);

setRenderPriority() - >此方法在API级别18中已弃用.建议不要调整线程优先级,并且在将来的版本中不支持此方法.

我的DataLoader.java类

public class DataLoader extends Activity {

    private WebView webView = null;
    // Progress Dialog
    private ProgressDialog progressDialog;

    String dataContent = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.web_view);
        webView = (WebView)findViewById(R.id.text);

        // Loading webview in Background Thread
        new LoadWebView().execute();
    }

    class LoadWebView extends AsyncTask<String, String, String> {

        @Override
        protected void onPreExecute() { …
Run Code Online (Sandbox Code Playgroud)

android webview android-webview android-activity

33
推荐指数
2
解决办法
5万
查看次数

如何在Fragment中的WebView中添加"Go Back"功能?

更新:解决了!问题与我的Viewpager而不是WebView有关.

我正在尝试向我WebView的内部添加一个"返回"功能Fragment.但我无法弄清楚如何:

public final class TestFragment extends Fragment {

    static WebView mWeb;
    private View mContentView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState)
    {   
        mContentView = inflater.inflate(R.layout.webview, null);
        mWeb = (WebView)mContentView.findViewById(R.id.webview);

        WebSettings settings = mWeb.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setSupportZoom(false);
        mWeb.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        mWeb.getSettings().setBuiltInZoomControls(false);
        mWeb.loadUrl("myurl...");
        mWeb.setOnKeyListener(new OnKeyListener(){
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if ((keyCode == KeyEvent.KEYCODE_BACK) && mWeb.canGoBack()) {
                    mWeb.goBack();
                    return true;
                }
                return false;
            }
        });
    }   
}
Run Code Online (Sandbox Code Playgroud)

我也试过类似的东西:

@Override
public boolean onKeyDown(int keyCode, KeyEvent …
Run Code Online (Sandbox Code Playgroud)

android android-webview android-fragments

32
推荐指数
7
解决办法
3万
查看次数

如何使用android向webview显示html内容

以下是我想用web sdk在webview中显示的html内容.它只会显示

//请

但是,当我将这个HTML内容放入浏览器时,它会以不同的方式显示.

<br /><br />Read the handouts please for tomorrow.<br /><br /><!--homework help homework


help help with homework homework assignments elementary school high school middle school



// --><font color="#60c000" size="4"><strong>Please!</strong></font>
Run Code Online (Sandbox Code Playgroud)

请建议如何解决此问题

我有另一个问题,在HTML内容中有一个标记

<img src="http://www.homeworknow.com/hwnow/upload/images/tn_star300.gif" border="0" />
Run Code Online (Sandbox Code Playgroud)

在此图像中没有显示.

html android android-webview

31
推荐指数
2
解决办法
4万
查看次数

在Android应用中嵌入Youtube视频

我正在使用WebView显示嵌入式Youtube视频并且可以在Galaxcy S2(OS 2.3.5)上运行而在Nexus S(OS 2.3.4)上运行,我得到的只是白屏而没有任何视频显示.

这是我正在使用的代码片段和Manifest文件中的声明:

private WebView wv;

private void setWebView()
{
wv = (WebView) findViewById(R.id.webView);

wv.setWebChromeClient(new WebChromeClient());

wv.getSettings().setPluginState(WebSettings.PluginState.ON);

wv.setWebViewClient(new WebViewClient()); 

wv.getSettings();

wv.setBackgroundColor(0x00000000);

wv.setKeepScreenOn(true);

wv.setHorizontalScrollBarEnabled(false);
wv.setVerticalScrollBarEnabled(false);

wv.getSettings().setBuiltInZoomControls(true);

final String mimeType = "text/html";
final String encoding = "UTF-8";
String html = getHTML();

wv.loadDataWithBaseURL("", html, mimeType, encoding, "");

}


public String getHTML()
{

String html = "<html>"

    + "<head>"
 + "</head>"
 + "<body style=\"border: 0; padding: 0\">"
 + "<iframe "
 + "type=\"text/html\" "
 + "class=\"youtube-player\" "
 + "width= 100%\""
 + "\" …
Run Code Online (Sandbox Code Playgroud)

youtube android android-webview android-youtube-api

31
推荐指数
3
解决办法
13万
查看次数