在我的cn1应用程序中,我有一些我想要显示的内容已经被格式化为HTML,所以我认为最简单的方法就是坚持使用WebView而不是尝试解析它并为每个段落创建单独的cn1组件,等
问题在于我无法说服该应用实际显示它。
这是我的代码:
WebBrowser web = new WebBrowser();
web.setURL(StateMachine.URL_PREFIX + "/api/article_body.php?articleId=" + (String)map.get("id"));
mac.findArticleBodyContainer(f).addComponent(BorderLayout.CENTER, web);
form.revalidate();
这是我在Android设备上打开应用程序时的logcat输出(运行Marshmallow,之前使用Lollipop它也不起作用,但我没有日志):
02-22 11:08:01.844 25899-25899/? W/AwContents: onDetachedFromWindow called when already detached. Ignoring
02-22 11:08:01.849 25899-25899/? W/ResourceType: No package identifier when getting value for resource number 0x00000000
02-22 11:08:02.188 25899-26296/? E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
02-22 11:08:02.408 25899-25899/? W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 25899
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802979): avc: denied { search } for name="26253" dev="proc" ino=2312770 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802980): avc: denied { search } for name="26254" dev="proc" ino=2312771 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802981): avc: denied { search } for name="26255" dev="proc" ino=2312772 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802982): avc: denied { search } for name="26256" dev="proc" ino=2312773 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802983): avc: denied { search } for name="26257" dev="proc" ino=2312774 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802984): avc: denied { search } for name="26258" dev="proc" ino=2312775 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:02.956 1786-1786/? W/AutostartServic: type=1400 audit(0.0:4802985): avc: denied { search } for name="26259" dev="proc" ino=2312776 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=dir permissive=0
02-22 11:08:03.160 778-1444/? W/InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40f6863 attribute=null, token = android.os.BinderProxy@f97c335
我还没有在任何其他操作系统上试用它,虽然我在另一台Android设备(也是Marshmallow)上遇到了同样的问题。
注意:This所以问题有答案,但对于原生Android。我没有看到从cn1以相同方式访问webview设置的方法。
我将HTML内容移动到应用程序,并从本地文件加载它。我没有从模拟器中得到任何错误,但没有内容显示。在我的Android设备上,没有任何显示,这是Logcat的新输出:
02-23 10:22:28.426 16674-16674/? I/WebViewFactory: Loading com.google.android.webview version 47.0.2526.100 (code 252610000)
02-23 10:22:28.520 16674-16674/? I/cr_LibraryLoader: Time to load native libraries: 0 ms (timestamps 8908-8908)
02-23 10:22:28.520 16674-16674/? I/cr_LibraryLoader: Expected native library version number "47.0.2526.100", actual native library version number "47.0.2526.100"
02-23 10:22:28.546 16674-16674/? I/cr_LibraryLoader: Expected native library version number "47.0.2526.100", actual native library version number "47.0.2526.100"
02-23 10:22:28.546 16674-16674/? I/chromium: [INFO:library_loader_hooks.cc(122)] Chromium logging enabled: level = 0, default verbosity = 0
02-23 10:22:28.555 16674-16674/? I/cr_BrowserStartup: Initializing chromium process, singleProcess=true
02-23 10:22:28.558 16674-16674/? E/SysUtils: ApplicationContext is null in ApplicationStatus
02-23 10:22:28.615 16674-17002/? W/cr_media: Requires BLUETOOTH permission
02-23 10:22:28.643 16674-16674/? D/cr_Ime: [InputMethodManagerWrapper.java:27] Constructor
02-23 10:22:28.652 16674-16674/? D/cr_Ime: [ImeAdapter.java:241] attach
02-23 10:22:28.661 16674-16674/? W/AwContents: onDetachedFromWindow called when already detached. Ignoring
02-23 10:22:28.662 16674-16674/? D/cr_Ime: [InputMethodManagerWrapper.java:56] isActive: false
02-23 10:22:28.666 16674-16674/? W/ResourceType: No package identifier when getting value for resource number 0x00000000
02-23 10:22:28.728 16674-16674/? D/cr_Ime: [ImeAdapter.java:241] attach
02-23 10:22:28.766 16674-16674/? D/cr_Ime: [ImeAdapter.java:241] attach
02-23 10:22:28.824 16674-16674/? D/cr_Ime: [AdapterInputConnection.java:499] finishComposingText
02-23 10:22:28.827 16674-16674/? D/cr_Ime: [AdapterInputConnection.java:145] Constructor called with outAttrs: inputType=0xa1 imeOptions=0x12000000 privateImeOptions=null
actionLabel=null actionId=0
initialSelStart=0 initialSelEnd=0 initialCapsMode=0x0
hintText=null label=null
packageName=il.co.medonline.doctorapp fieldId=-1 fieldName=null
extras=null
02-23 10:22:28.857 16674-16674/? D/cr_Ime: [AdapterInputConnection.java:308] getExtractedText
02-23 10:22:28.861 16674-16674/? D/cr_Ime: [AdapterInputConnection.java:542] setComposingRegion [0 0]
02-23 10:22:28.862 16674-16674/? D/cr_Ime: [AdapterInputConnection.java:499] finishComposingText
02-23 10:22:28.877 16674-17015/? E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
02-23 10:22:28.957 16674-16674/? W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 16674
存在相同的两条不祥行:validate_display:255 error 3008
和Cannot call determinedVisibility()
。谷歌搜索这些似乎表明,当应用程序未更新某些安全措施以与Android 5.0及更高版本中使用的Linux内核兼容时,它们会出现,但可以通过在本机Android WebView上设置几个属性轻松解决这些问题。 cn1是否允许访问这些内容,还是应该尝试使用本机组件?
答案 0 :(得分:2)
在codenameone中有3种加载webbrowser的方法,在下面的链接中提到 Resources and Codename One
答案 1 :(得分:0)
浏览器是如何布局的?它在模拟器中有效吗?
我看到您已将其添加到边框布局中,但如果您将该组件放置在未明确增长该组件的布局管理器中,那么这实际上并不重要。
答案 2 :(得分:0)
我发现你还需要父容器/表单使用边框布局而不是别的。我不知道为什么,但以这种方式似乎有效...