我对 Java 完全陌生,但试图制作一个非常简单的应用程序,它在 GeckoView 中显示一个网站。
我可以存档以在 GeckoView 中加载网站,但是一旦我尝试更改某些设置(UserAgentMode 为 DESKTOP),一旦我尝试在手机上打开它,应用程序就会崩溃(没有显示错误)。正如我所说,我对 Java 完全陌生 - 所以这可能是初学者的错误 - 无论如何我自己无法弄清楚。
这是 UserAgentMode 的文档:https ://mozilla.github.io/geckoview/javadoc/mozilla-central/org/mozilla/geckoview/GeckoSessionSettings.html#USER_AGENT_MODE_DESKTOP
我现在在哪里:
package com.example.geckotest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoSessionSettings;
import org.mozilla.geckoview.GeckoView;
public class MainActivity extends AppCompatActivity {
private GeckoView geckoview;
private GeckoSession GeckoSession;
private GeckoRuntime geckoRuntime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GeckoView view = findViewById(R.id.geckoview);
GeckoSession session = new GeckoSession();
GeckoSession.getSettings().setInt(GeckoSessionSettings.USER_AGENT_MODE, 1);
GeckoRuntime runtime = GeckoRuntime.create(this);
session.open(runtime);
view.setSession(session);
session.loadUri("https://google.com");
}
}
这条线导致了问题;当我将它们注释掉时,应用程序启动得很好 - 但不是在所需的桌面模式下:
GeckoSession.getSettings().setInt(GeckoSessionSettings.USER_AGENT_MODE, 1);