如何在我自己的android库模块中添加crosswalk webview?

RDY*_*RDY 12 android shared-libraries webview android-studio crosswalk

我正在开发一个Android库模块,其中必须包含Crosswalk Webview.我使用Github Sonatype(https://github.com/sonatype/)创建库.没有Crosswalk Webview,它可以正常工作.我尝试了以下3种方法来包含Crosswalk.

方法1:

  • 在我的库项目应用程序gradle中添加Crosswalk Webview库

  • 错误:(编译错误)

  • 无法解决:org.xwalk:xwalk_core_library:18.48.477.13

方法2:

方法3:

注意:我尝试了两种jar(普通,共享模式)文件

Kri*_*ofe 8

我从webview创建一个新的应用程序到XWalkView来呈现three.js stl加载器演示,无论WebGlRenderer还是CanvasRenderer都不支持webview.以下是如何使用人行横道模块的过程:

第1步:文件 - >新建 - >导入模块

文件 - >新建 - >导入模块

步骤2选择模块并根据需要重命名

选择模块并根据需要重命名

第3步选择所有选项

选择所有选项

这里的android studio可能会要求你更新,更新它

在此输入图像描述

第4步处理模块依赖

处理模块依赖 在此输入图像描述 在此输入图像描述

在此之后,Gradle Build自动运行在这里我们完成了人行横道入口.

第5步使用XWalkView

将此权限添加到AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

将硬件加速添加到AndroidManifest.xml的应用程序节点上

android:hardwareAccelerated="true"
Run Code Online (Sandbox Code Playgroud)

将其添加到布局文件中

<org.xwalk.core.XWalkView 
 android:id="@+id/xWalkView"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
</org.xwalk.core.XWalkView>
Run Code Online (Sandbox Code Playgroud)

将此添加到活动中

XWalkView mXWalkView = (XWalkView) findViewById(R.id.xWalkView);
mXWalkView.load("http://192.168.1.42/test", null);
Run Code Online (Sandbox Code Playgroud)

这里我们完成了这个结果,我使用webview和XWalkView来渲染three.js STL加载器.

webview不支持

webview不支持

XWalkView支持得很好

XWalkView支持得很好

哈哈,它的工作原理.


Follow是另一个旧的实现,你也可以参考这个好[post]或doc 11.

这是源代码.

下载正确的Crosswalk Android webview包并从https://crosswalk-project.org/documentation/downloads.html解压缩

将xwalk_core_library_java.jar从crosswalk libs复制到android studio项目中的app/libs /,然后单击该文件,选择"Adds As Library"

将crosswalk libs下的其他内容复制到app/src/main/jniLibs /

创建一个Android资源目录res2,并将人行横道res目录中的文件复制到此目录.

将其添加到AndroidMenifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


and add android:hardwareAccelerated="true" to application node.to use hardware acceleration which is needed by crosswalk webview
Run Code Online (Sandbox Code Playgroud)

将此添加到布局

<org.xwalk.core.XWalkView android:id="@+id/webview"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    </org.xwalk.core.XWalkView>
Run Code Online (Sandbox Code Playgroud)

将此添加到Activity

XWalkView mXWalkView = (XWalkView) findViewById(R.id.webview);
    mXWalkView.load("http://xxxxxx.com", null);
Run Code Online (Sandbox Code Playgroud)

如果你想调试romote添加这个.

XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
Run Code Online (Sandbox Code Playgroud)