我正在尝试将浏览器字段添加到我的主屏幕上。目前,我有:
public class BrowserFieldDemo extends UiApplication {
private MainScreen _browserScreen;
private BrowserField _bf2;
private BrowserFieldConfig _bfConfig;
public BrowserFieldDemo(final String url) {
_browserScreen = new MainScreen();
_bfConfig = new BrowserFieldConfig();
_bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
BrowserFieldConfig.NAVIGATION_MODE_POINTER);
_bfConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED,
Boolean.TRUE);
_bf2 = new BrowserField(_bfConfig);
_browserScreen.add(_bf2);
invokeLater(new Runnable() {
public void run() {
_bf2.requestContent(url);
pushScreen(_browserScreen);
}
});
}
}
将浏览器插入主屏幕类以及其他 UI 元素的正确方法是什么?例如,添加(myBrowserField)?我不确定如何设置 BrowserFieldDemo 类来执行此操作,因为我需要为线程扩展 UIApplication ...
public class LoginScreen extends MainScreen implements FieldChangeListener{}
谢谢!
更新:
我现在有以下内容:
public class LoginBrowserField extends Thread {
private LoginScreen loginScreen;
private String url;
public LoginBrowserField(String url, LoginScreen loginScreen) {
this.loginScreen = loginScreen;
this.url = url;
}
public void run() {
synchronized (UiApplication.getEventLock()) {
loginScreen.changeURL(url);
}
}
}
public class LoginScreen extends MainScreen implements FieldChangeListener {
public void changeURL(final String url) {
_bf2.requestContent(url);
_bf2.setFocus();
}
}
为了启动浏览器,我调用(在 LoginScreen 中):
LoginBrowserField browser = new LoginBrowserField(url, this);
browser.start();
但是,我不确定上面的设置是否正确,因为浏览器需要很长时间才能出现在应用程序中,并且它不能正确解析我的 URL。你能看出有什么不对吗?
谢谢!