как использовать метод loadData () geckoEngineView - PullRequest
0 голосов
/ 18 февраля 2020

Я новичок в компонентах Mozilla android и хочу узнать, как использовать метод loadData () или loadUrl () geckoEngineView для загрузки файлов HTML из папки ресурсов в процессе разработки android. Я использую методы loadData () и loadUrl () следующим образом:

session.loadUrl("file:///android_asset/1.html")

session.loadData("<html><body>Example HTML content here</body></html>","text/html", "utf-8")

Это мой код деятельности. xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 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"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <mozilla.components.browser.toolbar.BrowserToolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:background="#aaaaaa" />


        <mozilla.components.browser.engine.gecko.GeckoEngineView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/engineView"/>

    </LinearLayout>

</LinearLayout>

MainActivity.kt

class MainActivity : AppCompatActivity() {

    private val engine: Engine by lazy {
        GeckoEngine(this)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val session = engine.createSession()
        engineView.render(session)

        session.loadUrl("file:///android_asset/1.html")
        //or
        session.loadData("<html><body>Example HTML content here</body> 
        </html>","text/html", "utf-8")

    }
    override fun onCreateView(parent: View?, name: String, context: Context, attrs: AttributeSet): View?=
        when (name) {
            EngineView::class.java.name -> engine.createView(context, attrs).asView()
            else -> super.onCreateView(parent, name, context, attrs)
        }
}

в обоих случаях отображается пустая страница

webview.loadUrl ("file: ///android_asset/1.html") работает как брелок в android webview.

...