简体   繁体   English

网站无法在android webview中加载,但可以在android浏览器中正常运行

[英]Website won't load in android webview but works fine in android browsers

This has been annoying me for a while now and I could really use some help. 这已经让我很烦了一段时间,我真的可以使用一些帮助。 I have a website created on portfoliobox.net which works fine in chrome and every other browser I tried on android (actual phones, not emulators), however I wanted to make it into an app for part of a University project. 我有一个在Portfoliobox.net上创建的网站,该网站在chrome和我在android上尝试过的所有其他浏览器(实际的手机,而不是模拟器)都可以正常运行,但是我希望将其变成大学项目一部分的应用程序。 My webview app loads other websites fine but not mine for some reason, so yes I have set the permissions right and I have javascript enabled. 我的webview应用程序可以正常加载其他网站,但由于某些原因不能正常运行,因此是的,我已设置权限,并且启用了JavaScript。 It could be something simple but I'm a major noob and haven't got much of a clue. 可能很简单,但是我是一个主要菜鸟,没有太多的头绪。

Here is the logcat 这是logcat

04-30 22:08:56.954: W/BindingManager(8365): Cannot call determinedVisibility() - never saw a connection for the pid: 8365
04-30 22:08:56.962: E/com.parse.push(8365): successfully subscribed to the broadcast channel.
04-30 22:08:56.973: D/GCM(2579): COMPAT: Multi user ser=0 current=0
04-30 22:08:56.989: D/GCM(11959): GcmService start Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gms cmp=com.google.android.gms/.gcm.GcmService (has extras) } com.google.android.c2dm.intent.REGISTER
04-30 22:08:57.145: I/Icing(2579): Indexing DBC59092704C7216FC04EAC8683F4EE7F5C1F3E0 from com.google.android.googlequicksearchbox
04-30 22:08:57.302: W/SQLiteConnectionPool(2579): A SQLiteConnection object for database '/data/data/com.google.android.gms/databases/auto_complete_suggestions.db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
04-30 22:08:57.302: W/SQLiteConnectionPool(2579): A SQLiteConnection object for database '/data/data/com.google.android.gms/databases/help_responses.db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
04-30 22:08:57.306: W/SQLiteConnectionPool(2579): A SQLiteConnection object for database '/data/data/com.google.android.gms/databases/metrics.db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
04-30 22:08:57.333: I/Icing(2579): Indexing done DBC59092704C7216FC04EAC8683F4EE7F5C1F3E0
04-30 22:08:57.333: D/PowerManagerService(912): releaseWakeLockInternal: lock=289528107 [Icing], flags=0x0
04-30 22:08:57.377: D/PowerManagerService(912): acquireWakeLockInternal: lock=1014891468, flags=0x1, tag="NetworkStats", ws=null, uid=1000, pid=912
04-30 22:08:57.406: D/PowerManagerService(912): releaseWakeLockInternal: lock=1014891468 [NetworkStats], flags=0x0
04-30 22:08:58.035: I/chromium(8365): [INFO:CONSOLE(0)] "'webkitIDBRequest' is deprecated. Please use 'IDBRequest' instead.", source:  (0)
04-30 22:08:58.270: I/chromium(8365): [INFO:CONSOLE(1)] "HARD RESET!!", source: http://www.broadbentstudios.com/application/_output/pb.out.front.js?v=7 (1)
04-30 22:08:58.277: I/chromium(8365): [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)

Main.xml Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <WebView android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/mainWebView"
      android:scrollbarSize="10dp"
      android:scrollbarThumbVertical="@drawable/customscroll">
     </WebView>


</LinearLayout>

BroadbentStudios.java BroadbentStudios.java

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;

public class BroadbentStudios extends Activity {

    WebView webView;
    /** Called when the activity is first created. */
    @SuppressLint("SetJavaScriptEnabled")
    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().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(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());
    }

}

I also use Parse for push notifications for new content but I tried a clean webview app without it too and that didn't work so I'm pretty sure it's not that. 我也使用Parse来推送新内容的通知,但是我也尝试了一个没有它的干净的Webview应用程序,并且该应用程序无法正常工作,因此我敢肯定不是这样。

I would think that because it works fine in browsers it is my app messing up somewhere, but I could be wrong I guess. 我认为这是因为它在浏览器中可以正常工作,这是我的应用程序混乱了,但是我想我可能错了。 any help would be greatly appreciated, even if it's my website and not my app, it would be good to know. 任何帮助将不胜感激,即使它是我的网站而不是我的应用程序,也很高兴知道。 Thank you. 谢谢。

Well I've been searching for about 2 months for an answer to this and as soon as I come here for help I find it myself haha, typical. 好吧,我一直在寻找约2个月的答案,而我一到这里寻求帮助,我自己就找到了它,典型。 Anyway, for anybody in a similar situation, as well as enabling javascript you also need to enable Dom storage by adding in; 无论如何,对于处于类似情况的任何人,以及启用javascript,您还需要通过添加来启用Dom存储。

webView.getSettings().setDomStorageEnabled(true);

Change webView to whatever yours is called and you should be good to go. 将webView更改为您所需要的名称,您应该一切顺利。

Hope this helps someone. 希望这对某人有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM