Android webview在从资源加载html,javascript源时抛出引用错误

时间:2015-01-09 05:27:34

标签: javascript android html webview

我正在尝试通过webview.loadUrl("file:///android_asset/Content_to_Change/dev/index.html").

将网络应用程序改编为android webview

我已将整个应用程序代码粘贴到资源文件夹中'assets/Content_To_Change/dev'.当我运行Android应用程序时,索引页面加载正常,但在此之后执行会以预测方式暂停,并带有如下参考错误:

Uncaught TypeError: Cannot read property 'identifier' of undefined at file:///android_asset/Content_To_Change/dev/activity/views/screen4/screen.js:361

Uncaught TypeError: Cannot read property 'yPoint' of null at file:///android_asset/Content_To_Change/dev/activity/views/screen4/screen.js:394

此外,这些错误有时会发生在一个地方,有时也发生在另一个地方我想知道为什么在应用程序正常工作时会出现引用错误,而在Safari(iOS)和桌面浏览器中没有任何错误!

在做了更多的点击和试验之后,似乎在js / css的渲染中存在某种加载顺序不匹配?我也试过android:hardwareAccelerated =" true"明显但无济于事...... :(

这是我的代码:

String url = "file:///android_asset/Content_To_Change/dev/index.html";
mWebView = (WebView) findViewById(R.id.webViewMain);
    // webView.setInitialScale(WEBVIEW_SCALE);
    WebSettings settings = mWebView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setSupportZoom(true);
    settings.setDomStorageEnabled(true); //

    settings.setLoadWithOverviewMode(true);
    settings.setDatabaseEnabled(true);
    settings.setBuiltInZoomControls(true);
    settings.setPluginState(WebSettings.PluginState.ON);
    settings.setAllowFileAccess(true);
    settings.enableSmoothTransition();
    settings.setDisplayZoomControls(false);
    //      settings.set
    settings.setJavaScriptCanOpenWindowsAutomatically(true);
    settings.setLoadsImagesAutomatically(true);

    settings.setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    mWebView.setScrollbarFadingEnabled(false);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
    {
        settings.setAllowUniversalAccessFromFileURLs(true);
        settings.setAllowFileAccessFromFileURLs(true);
        settings.setAllowContentAccess(true);
        settings.setAllowUniversalAccessFromFileURLs(true);
    }

    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.setWebViewClient(new WebViewClient()); // forces it to
    mWebView.loadUrl(url);

Menifest有这个:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:hardwareAccelerated="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

请告知我应该怎么做才能在webview中无缝运行我的网络应用程序?。

0 个答案:

没有答案