标签: android-webview

Android:在webview中调试javascript的问题

我在WebView中运行了一些javascript,我希望收到有关JS中错误的控制台消息.按照http://developer.android.com/guide/webapps/debugging.html上的说明,我覆盖了方法

WebChromeClient.onConsoleMessage(String message, int lineNumber, String sourceID)

WebChromeClient.onConsoleMessage(ConsoleMessage cm),

将消息重定向到logcat.在Android 2.1中它运行良好,但在Android 2.2中没有调用此方法.

我做错了什么?

谢谢.

android android-webview

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

在Android中与WebView进行通信的任何方式?

是否可以通过我的原生android代码与android中的webview进行交互?

我开发了用于Android的can bus驱动程序,我喜欢将我的can bus数据发送到webview中的html 5应用程序,而不是通过Internet将它们发送到web服务.或者是否可以通过我的原生Android应用程序中的html 5应用程序调用funktions?

你知道这个场景的好解决方案吗?

javascript html5 android android-webview

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

如何在加载下一个WebView之前清除以前的WebView内容?

我的场景最初是我正在加载WebView,后来我正在使用不同的URL加载相同的WebView.

我的问题是每当我加载下一个URL时,我可以看到先前加载的URL内容,然后显示我当前加载的URL内容.

我想在加载不同的URL时清除内容.

说,

if (pos == 0) {
    mweb.clearCache(true);
    mweb.clearHistory();
    mweb.loadUrl("http://stackoverflow.com/");
}
else if (pos == 1) {
    mweb.clearCache(true);
    mweb.clearHistory();
    mweb.loadUrl("http://android.stackexchange.com/");
}
Run Code Online (Sandbox Code Playgroud)

双方clearCache()clearHistory()没有为我工作.

android android-webview

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

Android - 以编程方式检查互联网连接并显示对话框(如果未连接)

我正在进行一个现场项目.当用户点击应用程序时 出现欢迎屏幕(该屏幕上有一个webview).如果互联网没有连接,那么应用程序崩溃.基本上,我的问题是以编程方式检查移动设备是否连接到互联网.如果没有,则不要将数据从webservice提取到webview中,并显示一个对话框,显示"检查你的网络连接"

在做研究时我发现了很多东西,我试图实现它.但是,它不满足我的要求

我的代码是,

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    else
    {
        Description.setVisibility(View.INVISIBLE);
        new AlertDialog.Builder(WelcomePage.this)
        .setTitle(getResources().getString(R.string.app_name))
        .setMessage(
                getResources().getString(
                        R.string.internet_error))
        .setPositiveButton("OK", null).show();
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我打电话这一功能doInBackground()AsyncTask

请帮忙!

android android-webview android-internet android-websettings

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

Kitkat杀死:不允许加载本地资源:file:///android_asset/webkit/android-weberror.png

我有一个使用WebViews的应用程序.我已经将目标API从18改为19,我正在测试新的4.4.出于某种原因,我收到了这个错误:Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png4.4但不是4.3,有人知道为什么?

由于我真的不知道从哪里开始看,我无法提供完整的代码.它可能与shouldInterceptRequest(Webview, String)WebViewClient中的方法有关,但我不太确定.如果我知道更多,我会更新问题.

android android-webview

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

我可以将Javascript代码注入Chrome自定义标签吗?

在我的应用程序中,我目前使用Web视图显示一些内容,然后使用Javascript注入快速填写用户的表单.唯一的问题是,与Chrome自定义标签相比,Webview的速度非常慢.是否可以将Javascript代码注入这些自定义选项卡?

例如,以下是我目前使用的一些代码:

myWebView.loadUrl("javascript:document.getElementById('join_first_name').value='" + name + "';void(0); ");
Run Code Online (Sandbox Code Playgroud)

javascript android android-webview chrome-custom-tabs

22
推荐指数
2
解决办法
2696
查看次数

找不到包:com.android.chrome

我在应用程序中看到了很多崩溃,并在此处将消息用作标题.几乎所有的崩溃都在OnePlus设备上,其中大部分是在Android Oreo分叉的Oxygen OS版本上.有没有人见过这个?以下是堆栈跟踪:

 java.lang.RuntimeException: Package not found: com.android.chrome
    at android.webkit.WebViewDelegate.getPackageId(WebViewDelegate.java:164)
    at com.android.webview.chromium.ig.L(WebViewDelegateFactory.java:16)
    at com.android.webview.chromium.WebViewChromiumFactoryProvider.h(WebViewChromiumFactoryProvider.java:177)
    at com.android.webview.chromium.se.run(WebViewChromiumFactoryProvider.java:5)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6809)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Run Code Online (Sandbox Code Playgroud)

编辑:2018年2月18日:

几个星期前我们收到了我们团队的One Plus 5T(OnePlus A5010),在运行我们的应用程序时没有看到任何问题.该设备预装了Android 7.0的OxygenOS前叉.但是,今天该设备收到了Android 8.0.0(OxygenOS 5.0.3)更新通知,并且在成功安装更新后,我们的应用程序崩溃了相同的堆栈跟踪.这次崩溃严重影响了我们的用户群.任何帮助将不胜感激.

android chromium android-webview

22
推荐指数
2
解决办法
2331
查看次数

forOverrideUrlLoading在WebView for Android中未运行

-Edit:找到解决方案
- 在经过一番繁重的搜索后想出来 - 一个人(我的意思是一个人)说他们改为使用onPageLoad(); 这完全符合我的目的.区别在于onPageLoad()的运行时间晚于shouldOverrideUrlLoading,但它对我的代码没有影响.

我正在尝试使用OAuth为Android应用程序设置Twitter授权,到目前为止我可以成功将用户发送到授权URL,但是,我现在要做的是拦截重定向到回调(这只是导致404错误,我们的回调URL不会在我们的服务器上有关联的页面).我要做的是检查URL是否是我们的回调,然后从URL中提取OAuth Verifier.我使用以下代码设置我的WebView:

view = (WebView)findViewById(R.id.twitterWbVw);
view.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView wView, String url)
    {
        String urlHolder;
        String[] verifExtrctr;
        urlHolder = url.substring(0, url.indexOf('?'));
        System.out.println("url");
        if(urlHolder.equalsIgnoreCase(CALLBACK_URL))
        {
            verifExtrctr = urlHolder.split("?");
            verifExtrctr = verifExtrctr[2].split("=");
            if(verifExtrctr[0].equalsIgnoreCase("oauth_verifier"))
            {
                params[5] = verifExtrctr[1];
                return true;
            }
            else
            {
                System.out.println("Inocorrect callback URL format.");
            }
        }
        else    
        {
            wView.loadUrl(url);
        }
        return true;
    }
});
view.loadUrl(urlAuthorize.toExternalForm());
Run Code Online (Sandbox Code Playgroud)

事情甚至是System.out.println("url"); (我用来调试)不运行!所以我的想法非常枯燥,找不到有类似问题的人.授权URL运行良好,我可以成功授权应用程序,但由于某种原因重定向到回调URL永远不会被截获.任何帮助将不胜感激,这是在我的onResume(),如果这很重要.

https android android-webview webviewclient

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

Android webview下拉菜单在Android 4.x设备上无效

我的WebViewAndroid 4.x设备上有一个问题.

Android应用有一个包含片段Tabhost.其中一个片段包含webview.显示的页面有一个下拉菜单,如下所示:

<select id="mySelect" name="mySelect">
    <option value="1">Testname 1</option>
    <option value="2">Testname 2</option>
    <option value="3">Testname 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

现在,当我使用带有Android 4.1.1的Galaxy S3(或任何其他Android设备,我可以开始使用)打开我的应用程序时,我可以选择"Testname 1",然后选择"Testname 2",依此类推.

在Galaxy Nexus上(在运行Android 4.1.1,4.1.2和4.2的不同设备上确认)当我尝试选择UI时阻止的东西.在我切换到另一个选项卡并突然返回到webview选项卡后,UI最终更改为先前选择的项目.

知道是什么导致了这个或如何为Galaxy Nexus解决这个问题?

重要更新: 我可以追踪到这一点Tabhost.当webview它在tabhost它不起作用时,它不起作用.这可能与此问题有关.

android android-webview android-tabhost android-fragments

21
推荐指数
1
解决办法
3608
查看次数

如何将数据从一个片段发送到另一个片段?

嗨,我知道这个问题有答案.我已经尝试了所有这些,但它在我的应用程序中无效.我正在开发一个具有3个Fragment活动的应用程序.第一个片段显示一个网站,第二个片段显示listview,第三个片段显示另一个列表视图.现在我想在用户点击listitem时将第三个片段的URL发送到第一个片段.这就是我所做的.

我从这个Fragment发送字符串url到第一个片段.

list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapter, View view, int position,
            long id) {
        FragmentC fragment = new  FragmentC();
        final Bundle bundle = new Bundle();
        bundle.putString("position", "http://www.facebook.com");            fragment.setArguments(bundle);}
});
Run Code Online (Sandbox Code Playgroud)

这是我需要网址并希望在网页浏览中显示的第一个片段.

String url="http://www.hotelsearcher.net/";
        Bundle args = getArguments();
        if (args  != null){
        url = args.getString("position");
        }
        WebView webView= (WebView) V.findViewById(R.id.webView1);
        WebSettings webViewSettings = webView.getSettings();
        webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webViewSettings.setJavaScriptEnabled(true);
        webViewSettings.setPluginState(PluginState.ON);
        webView.loadUrl(url);
Run Code Online (Sandbox Code Playgroud)

当我点击列表项时,我什么都没看到.它没有将我重定向到第一个片段.请帮帮我..

android android-webview android-listview android-fragments

21
推荐指数
2
解决办法
7万
查看次数