PixiJS 演示在 Android 模拟器的 WebView 中显示为空白
PixiJS demos appear blank in WebView on Android emulator
PixiJS 演示如http://pixijs.io/examples/?v=v4.7.0#/basics/basic.js don't load when rendered in a WebView.
重现步骤
- Android 工作室:3.0.1
- Android 模拟器:27.1.12-4623001
- 模拟器:A "Nexus 5" 运行ning API 25
重现步骤
- 在 Android Studio 中创建一个具有基本 activity 的新应用
- 文件 > 新建 > 新建项目
- 在 "Create Android Project" 屏幕上,单击下一步
- 在 "Target Android Devices" 屏幕上,单击下一步
- 在 "Add an Activity to Mobile" 屏幕上,单击 "Empty Activity",然后单击下一步
- 在 "Configure Activity" 屏幕上,单击完成
- 在activity_main.xml中添加一个WebView,它应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.locuslabs.myapplication.MainActivity">
<WebView
android:id="@+id/llWebView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
- 给AndroidManifest.xml添加权限,应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.locuslabs.myapplication">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
将以下代码添加到MainActivity.java:
package com.locuslabs.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = findViewById(R.id.llWebView);
webView.setWebViewClient(new WebViewClient());
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
String urlString = "http://pixijs.io/examples/?v=v4.7.0#/basics/basic.js";
webView.loadUrl(urlString);
}
}
当您在 Android 模拟器 27.1.12-4623001 中 运行 它时,它显示为空白(请参见下面的第一个屏幕截图),但在 Android 模拟器 26.1 中.4-4266726 它呈现良好(见下面的第二个屏幕截图)。
如何在 Android 模拟器上获得 PixiJS 演示 运行ning?
通过降级到 Android 模拟器 26.1.4-4266726,我能够在 Android 模拟器上获得 PixiJS 演示 运行。参见
PixiJS 演示如http://pixijs.io/examples/?v=v4.7.0#/basics/basic.js don't load when rendered in a WebView.
重现步骤
- Android 工作室:3.0.1
- Android 模拟器:27.1.12-4623001
- 模拟器:A "Nexus 5" 运行ning API 25
重现步骤
- 在 Android Studio 中创建一个具有基本 activity 的新应用
- 文件 > 新建 > 新建项目
- 在 "Create Android Project" 屏幕上,单击下一步
- 在 "Target Android Devices" 屏幕上,单击下一步
- 在 "Add an Activity to Mobile" 屏幕上,单击 "Empty Activity",然后单击下一步
- 在 "Configure Activity" 屏幕上,单击完成
- 在activity_main.xml中添加一个WebView,它应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.locuslabs.myapplication.MainActivity">
<WebView
android:id="@+id/llWebView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
- 给AndroidManifest.xml添加权限,应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.locuslabs.myapplication">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
将以下代码添加到MainActivity.java:
package com.locuslabs.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = findViewById(R.id.llWebView); webView.setWebViewClient(new WebViewClient()); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); String urlString = "http://pixijs.io/examples/?v=v4.7.0#/basics/basic.js"; webView.loadUrl(urlString); } }
当您在 Android 模拟器 27.1.12-4623001 中 运行 它时,它显示为空白(请参见下面的第一个屏幕截图),但在 Android 模拟器 26.1 中.4-4266726 它呈现良好(见下面的第二个屏幕截图)。
如何在 Android 模拟器上获得 PixiJS 演示 运行ning?
通过降级到 Android 模拟器 26.1.4-4266726,我能够在 Android 模拟器上获得 PixiJS 演示 运行。参见