标签: android-webview

Android的webview的替代品

有谁知道Android的webview组件的替代品?由于某些原因,它的功能对我来说是不够的:当我浏览wml页面(wap)时,我需要能够捕获每个请求到某个URL.无论如何,我需要能够做到Android的webview没有制作的东西.我想"嘿,让我们玩源代码,我很确定webviews正在使用apache.org librairies来访问互联网".哦,男孩,我错了.Webview使用本机代码,这就是我被困住的地方.

所以我想知道是否有人知道在纯java中的另一个Web浏览器视图,它将是开源的并且很好.这不是问题,如果它很慢,我正在显示一些基本的wap页面......

提前致谢.

android android-webview

30
推荐指数
1
解决办法
8937
查看次数

Android WebView在WebView中单击打开而不是默认浏览器

我使用WebView做了一个示例应用程序,在该Web视图中,URL来自Web服务.它工作正常,但如果我点击该WebView中的任何链接,它会自动转到默认的Web浏览器.但我想在我的应用程序Web视图中打开.这是我的代码:

WvBikeSite = (WebView) findViewById(R.id.wv_bikeWebsite);
wvBikeSite.loadUrl(getBundle.getString("www"));
Run Code Online (Sandbox Code Playgroud)

android android-webview

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

将Cookie从HttpURLConnection(java.net.CookieManager)传递到WebView(android.webkit.CookieManager)

我已经看到了关于它应该如何与旧版本一起工作的答案,DefaultHttpClient 但是没有一个很好的例子HttpURLConnection

我正在使用HttpURLConnectionWeb应用程序发出请求.在我的Android应用程序开始时,我使用CookieHandler.setDefault(new CookieManager())自动处理会话cookie,这工作正常.

在登录后的某个时刻,我想用Web应用程序向用户显示实时页面WebView而不是在后台下载数据HttpURLConnection.但是,我想使用我之前建立的相同会话来防止用户再次登录.

如何复制饼干从java.net.CookieManager使用HttpURLConnectionandroid.webkit.CookieManager使用的WebView,所以我可以共享会话?

cookies android httpurlconnection single-sign-on android-webview

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

用户按下后Android WebView不会停止

我正在WebView中播放YouTube视频.我可以播放它,但是当这个人离开屏幕时,我无法阻止播放音频.

我在onDestroy和onPause中尝试了各种各样的东西,或完全取出它们,但它们似乎没有什么区别.

有人知道为什么音频会继续播放并且即使在应用关闭并且用户打开其他应用后也不会停止播放?

这是我全班的代码:

import com.flurry.android.FlurryAgent;

import utils.SendEmail;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings.PluginState;
import android.widget.Button;

public class YoutubeActivity extends Activity
{
    WebView webview = null;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        webview = new WebView(this);

            setContentView(webview);

            webview.getSettings().setAppCacheEnabled(false);
            webview.getSettings().setJavaScriptEnabled(true);
            webview.setInitialScale(1);
            webview.getSettings().setPluginState(PluginState.ON);

            WebSettings webSettings = webview.getSettings();

            webSettings.setLoadsImagesAutomatically(true);
            webSettings.setLoadWithOverviewMode(true);
            webSettings.setBuiltInZoomControls(true);        
            webSettings.setUseWideViewPort(true);

            webview.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView …
Run Code Online (Sandbox Code Playgroud)

android webview android-webview

30
推荐指数
5
解决办法
3万
查看次数

什么是'android.webkit.SafeBrowsingResponse'错误?

我在我的活动中使用webview.

我不知道什么时候,但我得到以下错误信息.

即使我搜索这个,我也没有太多信息.

虽然这不是一个严重的错误,但我想修复它,以便我不会收到这样的消息.

如果有人知道如何解决它,我想得到一些建议.

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.SafeBrowsingResponse" on path: DexPathList[[zip file "/data/app/com.google.android.webview-8CSSo1rZm_xmerbnZrD5xA==/base.apk"],nativeLibraryDirectories=[/data/app/com.google.android.webview-8CSSo1rZm_xmerbnZrD5xA==/lib/arm64, /data/app/com.google.android.webview-8CSSo1rZm_xmerbnZrD5xA==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:42)
        at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:651)
        at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
        at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
        at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:551)
        at java.lang.Object java.lang.reflect.Constructor.newInstance0(java.lang.Object[]) (Constructor.java:-2)
        at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:334)
        at android.view.View android.view.LayoutInflater.createView(java.lang.String, java.lang.String, android.util.AttributeSet) (LayoutInflater.java:647)
        at …
Run Code Online (Sandbox Code Playgroud)

android android-webview

30
推荐指数
1
解决办法
6973
查看次数

将webview背景图像设置为Android中的资源图形

我正在尝试将webview的背景设置为Android中的可绘制图像资源.

从sdk看起来这样的东西可以工作,但事实并非如此.

WebView web = (WebView) findViewById(R.id.webView);

web.setBackgroundResource(R.drawable.backgroundmain);
web.loadData(profile, "text/html", "UTF-8");
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

android android-ui android-webview android-resources

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

如何将一个视图显示为另一个视图的叠加?

我有两个视图占据整个屏幕,我想同时显示两个视图,一个在另一个上面.我的布局看起来像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <WebView 
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

    <org.example.myCustomView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

请注意,myCustomView使用onDraw(此方法的最后一个语句是invalidate())来绘制自定义图形.我得到的问题是它只显示myCustomView,WebView是隐藏的.我试图将背景颜色更改mycustomView为透明,但这没有任何区别.

我也希望有能力myCustomView作为叠加,WebView反之亦然.

android android-layout android-webview

29
推荐指数
2
解决办法
6万
查看次数

WebView Javascript来自本地HTML文件的跨域

我将一个本地html文件(从assets文件夹)加载到应用程序WebView.在HTML中我运行了一个jQuery.getJSON(url).url是一个远程服务器.

这个动作失败了,我猜是因为一个不同的起源问题(跨域).我在chrome上运行相同的文件,并在那里专门说明.

有没有办法允许Android中的WebView在本地加载的HTML文件中从远程服务器加载数据?

javascript android cross-domain same-origin-policy android-webview

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

尝试写一个只读数据库...但我不是

我有一个只读数据库连接.有时,当使用SELECT查询从数据库中读取数据时,它会抛出一个SQLiteReadOnlyDatabaseException.

我这样打开连接:

return SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);
Run Code Online (Sandbox Code Playgroud)

查询是:

Select * FROM BudgetVersions WHERE entityId = ?
Run Code Online (Sandbox Code Playgroud)

我使用数据库读取数据db.rawQuery(),如下所示:

String query = ...;
Cursor c = db.rawQuery(query, new String[]{ activeBudgetId });
try {
    if (c.moveToFirst()) {            
        bv.versionName = c.getString(c.getColumnIndexOrThrow("versionName"));
        return bv;
    } else {
        return null;
    }
} finally {
    c.close();
}
Run Code Online (Sandbox Code Playgroud)

很少,我在这样的调用中遇到了这样的崩溃c.moveToFirst():

Caused by: android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 776)
at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:845)
at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:144) …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-webview

29
推荐指数
1
解决办法
8465
查看次数

在混合Android应用程序中导航时,在chrome设备中看到多个分离的webview实例

我们有一个混合的Android应用程序.我试图从一个来回导航WebView到一个Native上下文.使用chrome://inspect/#devices我注意到检查的设备有多个实例,detached而其中一个实例attached将以chrome显示.参考SO-28254614,现在我还没有开发WebView,但是根据我对应用程序的了解,WebView不是使用Cordova设计的,而是JS中的.我的问题是:

  • 为什么我们在Chrome上看到这些分离的设备?
  • 这可能是Android WebView漏洞的可能吗?

javascript google-chrome web-inspector android-webview

29
推荐指数
1
解决办法
1002
查看次数