【问题标题】:Android webview won't load my URL but will load othersAndroid webview 不会加载我的 URL 但会加载其他的
【发布时间】:2015-04-12 18:03:12
【问题描述】:

我在 android 上有一个 webiew 应用程序,它加载了一些网站,但不是我需要的网站。

我不知道这是网站主机的问题还是我可以在我的应用程序中执行的操作。基本上我有一个我正在为大学制作的在线作品集,我想通过将它构建到应用程序中来让自己看起来更好。该作品集网站包含一个移动版本,因此它已经为此设置好了,并且可以在我手机上的 chrome 浏览器中正常运行。

它曾经与一个旧网站一起工作,它会加载谷歌,所以我知道我有互联网许可权。不确定这是否与我的新网站有关,或者我只需要更改某些内容以使其正常工作。

在 chrome 浏览器中它看起来应该是这样,但目前这并不好,因为我想在添加内容之前先执行此操作。 This is how it looks.(不能直接发截图,因为我没有足够的rep,对不起)

这是我的主要应用代码:

package com.broadbentstudios;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.parse.ParseAnalytics;

@SuppressLint("SetJavaScriptEnabled")
public class ParseStarterProjectActivity extends Activity {

    WebView webView;
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webView = (WebView) findViewById(R.id.mainWebView);
        webView.setBackgroundColor(0x00000000);
        webView.setHorizontalScrollBarEnabled(false);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.loadUrl("http://www.broadbentstudios.com/");

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                view.loadUrl(url);
                return true;
            }                
        });
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView!=null && webView.canGoBack()) {
            webView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }        
    {
        ParseAnalytics.trackAppOpenedInBackground(getIntent());
    }       
}

使用我的应用程序时的网站截图with the code above.

这是 logcat

04-12 18:51:45.686: D/PowerManagerService(1196): acquireWakeLockInternal: lock=903227323, flags=0x1, tag="LocationManagerService", ws=WorkSource{1000 com.qualcomm.location}, uid=1000, pid=1196
04-12 18:51:45.686: D/PowerManagerService(1196): acquireWakeLockInternal: lock=662236910, flags=0x1, tag="LocationManagerService", ws=WorkSource{10013 com.google.android.gms}, uid=1000, pid=1196
04-12 18:51:45.687: D/PowerManagerService(1196): acquireWakeLockInternal: lock=531027438, flags=0x1, tag="LocationManagerService", ws=WorkSource{10013 com.google.android.gms}, uid=1000, pid=1196
04-12 18:51:45.687: D/PowerManagerService(1196): releaseWakeLockInternal: lock=959227632 [LocationManagerService], flags=0x0
04-12 18:51:45.687: D/PowerManagerService(1196): releaseWakeLockInternal: lock=546372682 [LocationManagerService], flags=0x0
04-12 18:51:45.688: D/PowerManagerService(1196): releaseWakeLockInternal: lock=662236910 [LocationManagerService], flags=0x0
04-12 18:51:45.688: D/PowerManagerService(1196): releaseWakeLockInternal: lock=531027438 [LocationManagerService], flags=0x0
04-12 18:51:45.689: D/PowerManagerService(1196): releaseWakeLockInternal: lock=197382963 [LocationManagerService], flags=0x0
04-12 18:51:45.689: D/PowerManagerService(1196): releaseWakeLockInternal: lock=903227323 [LocationManagerService], flags=0x0
04-12 18:51:45.734: I/LibraryLoader(28664): Time to load native libraries: 34 ms (timestamps 2209-2243)
04-12 18:51:45.734: I/LibraryLoader(28664): Expected native library version number "",actual native library version number ""
04-12 18:51:45.747: V/WebViewChromiumFactoryProvider(28664): Binding Chromium to main looper Looper (main, tid 1) {24dd5d0b}
04-12 18:51:45.747: I/LibraryLoader(28664): Expected native library version number "",actual native library version number ""
04-12 18:51:45.747: I/chromium(28664): [INFO:library_loader_hooks.cc(108)] Chromium logging enabled: level = 0, default verbosity = 0
04-12 18:51:45.757: I/BrowserStartupController(28664): Initializing chromium process, singleProcess=true
04-12 18:51:45.758: W/art(28664): Attempt to remove local handle scope entry from IRT, ignoring
04-12 18:51:45.768: W/AudioManagerAndroid(28664): Requires BLUETOOTH permission
04-12 18:51:45.769: W/chromium(28664): [WARNING:resource_bundle.cc(304)] locale_file_path.empty()
04-12 18:51:45.770: I/chromium(28664): [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful, fd=59 off=45928 len=3221
04-12 18:51:45.770: I/chromium(28664): [INFO:aw_browser_main_parts.cc(76)] Loading webviewchromium.pak from, fd:60 off:390788 len:1143511
04-12 18:51:45.775: D/libEGL(28664): loaded /vendor/lib/egl/libEGL_adreno.so
04-12 18:51:45.776: D/libEGL(28664): loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
04-12 18:51:45.788: D/libEGL(28664): loaded /vendor/lib/egl/libGLESv2_adreno.so
04-12 18:51:45.803: I/Adreno-EGL(28664): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.1.C2.05.00.00.046.002_msm8974_LA.BF.1.1.1.C2__release_AU ()
04-12 18:51:45.803: I/Adreno-EGL(28664): OpenGL ES Shader Compiler Version: E031.25.03.00
04-12 18:51:45.803: I/Adreno-EGL(28664): Build Date: 01/06/15 Tue
04-12 18:51:45.803: I/Adreno-EGL(28664): Local Branch: mybranch6793908
04-12 18:51:45.803: I/Adreno-EGL(28664): Remote Branch: quic/LA.BF.1.1.1.c2
04-12 18:51:45.803: I/Adreno-EGL(28664): Local Patches: NONE
04-12 18:51:45.803: I/Adreno-EGL(28664): Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.1.C2.05.00.00.046.002 +  NOTHING
04-12 18:51:45.868: W/chromium(28664): [WARNING:data_reduction_proxy_settings.cc(328)] SPDY proxy OFF at startup
04-12 18:51:45.890: W/art(28664): Attempt to remove local handle scope entry from IRT, ignoring
04-12 18:51:45.895: W/AwContents(28664): onDetachedFromWindow called when already detached. Ignoring
04-12 18:51:45.917: E/QCOMSysDaemon(28750): Can't open /dev/block/platform/msm_sdcc.1/by-name/bootselect: (No such file or directory)
04-12 18:51:45.917: I/QCOMSysDaemon(28750): Starting qcom system daemon
04-12 18:51:45.917: E/Diag_Lib(28750):  Diag_LSM_Init: Failed to open handle to diag driver, error = 2
04-12 18:51:45.917: E/QCOMSysDaemon(28750):  Diag_LSM_Init failed : 0
04-12 18:51:45.953: D/OpenGLRenderer(28664): Render dirty regions requested: true
04-12 18:51:45.956: D/Atlas(28664): Validating map...
04-12 18:51:45.962: E/com.parse.push(28664): successfully subscribed to the broadcast channel.
04-12 18:51:45.963: D/PowerManagerService(1196): acquireWakeLockInternal: lock=553909931, flags=0x1, tag="Intent { act=com.google.android.c2dm.intent.REGISTRATION flg=0x10 pkg=com.broadbentstudios cmp=com.broadbentstudios/com.parse.GcmBroadcastReceiver (has extras) }", ws=null, uid=10221, pid=28664
04-12 18:51:45.992: I/OpenGLRenderer(28664): Initialized EGL, version 1.4
04-12 18:51:45.997: D/OpenGLRenderer(28664): Enabling debug mode 0
04-12 18:51:46.009: D/PowerManagerService(1196): releaseWakeLockInternal: lock=553909931 [Intent { act=com.google.android.c2dm.intent.REGISTRATION flg=0x10 pkg=com.broadbentstudios cmp=com.broadbentstudios/com.parse.GcmBroadcastReceiver (has extras) }], flags=0x0
04-12 18:51:46.029: I/Timeline(28664): Timeline: Activity_idle id: android.os.BinderProxy@19326283 time:33412539
04-12 18:51:46.030: D/PowerManagerService(1196): releaseWakeLockInternal: lock=110279535 [ActivityManager-Launch], flags=0x0
04-12 18:51:46.038: I/ActivityManager(1196): Displayed com.broadbentstudios/.ParseStarterProjectActivity: +864ms
04-12 18:51:46.038: I/Timeline(1196): Timeline: Activity_windows_visible id: ActivityRecord{3eff1853 u0 com.broadbentstudios/.ParseStarterProjectActivity t1645} time:33412548
04-12 18:51:46.055: D/ForegroundUtils(4725): Foreground changed, PID: 4813 UID: 10182 foreground: false
04-12 18:51:46.055: D/ForegroundUtils(4725): Foreground UID/PID combinations:
04-12 18:51:46.055: D/ForegroundUtils(4725): UID: 10221 PID: 28664
04-12 18:51:46.386: D/AbstractMetricsFactoryImpl(28721): record : No data points in metrics event
04-12 18:51:46.637: W/BindingManager(28664): Cannot call determinedVisibility() - never saw a connection for the pid: 28664
04-12 18:51:47.134: I/chromium(28664): [INFO:CONSOLE(0)] "'webkitIDBRequest' is deprecated. Please use 'IDBRequest' instead.", source:  (0)
04-12 18:51:47.422: I/chromium(28664): [INFO:CONSOLE(1)] "HARD RESET!!", source: http://www.broadbentstudios.com/application/_output/pb.out.front.js?v=7 (1)
04-12 18:51:47.440: I/chromium(28664): [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'clear' of null", source: http://www.broadbentstudios.com/application/_output/pb.out.front.js?v=7 (1)
04-12 18:51:48.338: D/audio_hw_primary(253): out_standby: enter: stream (0xb5801780) usecase(1: low-latency-playback)

任何帮助都会很棒,即使只是为了让我知道是我的应用程序还是导致问题的网站。

【问题讨论】:

    标签: android android-webview


    【解决方案1】:

    经过大量搜索终于找到了答案。对于任何处于类似情况的人,除了启用 javascript,您还需要通过添加来启用 D​​om 存储;

    webView.getSettings().setDomStorageEnabled(true);
    

    将 webView 更改为您的任何名称,您应该一切顺利。

    希望这对某人有所帮助。

    【讨论】:

    • 你先生,让我开心:) 谢谢
    • @luQ 很高兴我能帮忙,我花了好几天才找到这个,所以我知道痛苦哈哈。
    • @LewisBroadbent 谢谢伙计......你是一个优秀的开发者......因为你理解其他开发者的痛苦......赞赏!!!
    • @AndroidKiller 谢谢 :) 我绝对理解这种痛苦哈哈。
    【解决方案2】:

    您的网站存在 JavaScript 错误。您是否在共享的日志中尝试了解决该错误的方法?

    Uncaught TypeError: Cannot read property 'clear' of null",来源: http://www.broadbentstudios.com/application/_output/pb.out.front.js?v=7 (1)

    【讨论】:

    • 我尝试禁用 javascript 作为一个远射,但这并没有帮助,我认为它不会。我也是这方面的大菜鸟,所以我不太确定还能尝试什么,我在互联网上四处查看,但人们只是说要添加我已经拥有的互联网许可。你有什么可以建议我试试的吗?感谢您为我指出这一点,我也是 logcat 的新手,我想我错过了。
    • 禁用 JavaScript 不起作用,因为您的页面可能正在使用它来加载其内容。您需要找出导致 JavaScript 错误的原因。另外,您是在模拟器上还是在您的设备上进行测试?我可以在运行 Android 5.0.1 的 Chrome 应用程序上加载 broadbentstudios.com,这意味着任何应用程序的 WebView 至少应该能够在 Android 5 上打开它。
    • 是的,我以为是,但我还是试了一下。这是令人困惑的事情,我在我的实际手机 5.0.2 上运行它,它在我的 chrome 应用程序中运行良好。
    【解决方案3】:

    我最近创建了一个存储库,其中包含一个用于 android 的基本 Web 视图应用程序,并针对没有 Internet 连接进行了一些错误处理

    https://github.com/jgarciabt/SmartWebView

    您可以克隆它并从中启动您的应用程序,也许这样更容易。

    【讨论】:

    • 我正在写一些关于它是如何工作的文档,所以如果你不着急,你也可以稍后再查看 =)
    • 谢谢,我可能需要我刚刚尝试安装并运行它,并在其中使用我的网址,它只是说不幸的是,SmartWebView 已停止,我在 logcat 中遇到了很多错误哈哈跨度>
    • 你能通过电子邮件把日志发给我吗?我还在调试它。 jgarciabt@gmail.com 谢谢
    • 完成 :) 我想看看能不能把它发给你,但我看不到任何方法。希望它有助于他调试,不确定它是否会有所帮助,但我在 OneplusOne 上运行 5.0.2。
    猜你喜欢
    • 2018-10-18
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2012-11-19
    • 2017-12-20
    • 2019-07-30
    相关资源
    最近更新 更多