我正在尝试从布局main.xml设置WebView的URL.
通过代码,它很简单:
WebView webview = (WebView)findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/index.html");
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法将此逻辑放入布局XML文件中?
在Android开发者参考说,无论是WebView.PictureListener界面和它的onNewPicture()方法已过时.
很好,但需要知道WebView何时渲染图片仍然存在.有没有其他方法来实现这一目标?
webview的历史还没有清除......下面的代码出了什么问题?
Web视图创建
mWebViewReport=(WebView)findViewById(R.id.report_page);
mWebViewReport.setWebViewClient(new HelloWebViewClient());
mWebViewReport.getSettings().setBuiltInZoomControls(true);
Run Code Online (Sandbox Code Playgroud)
单击帮助按钮时加载帮助文件
mWebViewReport.loadUrl("file:///android_asset/help.html");
mWebViewReport.clearHistory();
mWebViewReport.clearCache(true);
Run Code Online (Sandbox Code Playgroud)
单击摘要按钮时加载摘要文件
mWebViewReport.loadUrl("file:///android_asset/summary.html");
//On back button click
if (mWebViewReport.canGoBack()) {
mWebViewReport.goBack();
return ;
}
Run Code Online (Sandbox Code Playgroud)
在这里,我也可以看到帮助页面......
我正在开发一个在WebView中加载网站的Android应用程序,但有时网站会返回HTTP代码500.
我的问题是:有没有办法从带有监听器或其他类的WebView获取HTTP状态代码?
我试图实现一个WebViewClient,但是我无法获得WebView收到的HTTP状态代码.
TextView始终存在RTL(从右到左)语言的问题.由于我只知道如何阅读希伯来语(除了英语),我将讨论它的问题:
文本对齐(我不是在谈论引力).作为一种RTL语言,希伯来语从右到左放置单词(与英语相反).
为了展示它是多么令人讨厌,想象一下,而不是展示"Hello world".你通常得到".Hello world".如果你只用一个句子就可以很容易地解决这个问题,但是当有多个标点字符时会更难.
元音位置.希伯来语不需要元音来阅读文本,但有时没有它们就很难阅读(特别是圣经).对于元音,希伯来语有所谓的"NIKUD",它实际上就像字母内部的点.Android中的问题是它们通常位于错误的位置.
为了展示它是多么令人讨厌,想象一下,而不是展示"Hello world".你通常得到".eHlol owrld".即使你试图修复它(把元音总是放在当前元素之后的一个字符),字母中的位置也不正确(想象"Hello"中的"e"就像"H"之上的那样,例子).
仅在版本4.2(在此处阅读,在"原生RTL支持"下),谷歌已经修复了所有希伯来语相关问题(或者至少看起来如此).
希伯来语的问题导致每个以色列航空公司和每个定制ROM制造商都有自己的解决方案来解决不同的问题,这使得在4.2之前的设备上处理RTL文本几乎是不可能的.
如果文本包括希伯来语和英文字母,事情会变得更加令人沮丧.
我已经阅读了很多关于这些问题的网站,我尝试了很多解决方案,没有一个解决了所有设备上的问题:
有人建议将字符'\ u200F'(或'\ u202D')放在文本的结尾/开始/两个位置.
有人建议使用Html.fromHtml()方法并在那里添加一些特殊内容.
有些人甚至建议使用WebView(也许使用WebSettings.setDefaultTextEncodingName()).
这个问题有一个明确的解决方案吗?
我认为最好的事情是因为Android 4.2解决了这个问题,并且Android是开源的,我们应该将其TextView导入到我们可以使用的库中,但谷歌还没有提供这样的库.
我正在尝试使用WebView制作应用程序,但该网站正在使用https,但内容(例如mp3文件)使用http,因此Android Lollipop将不会加载它,因为它是"混合内容".我试图使用onReceivedSslError handler.proceed();,但它没有加载任何东西.有办法解决吗?或者我可以只加载所有网站使用http,所以它没有显示任何错误?
我把一个WebView加载到ViewPager中的图像.当我尝试水平滚动图像时,我移动到下一个视图而不是滚动图像.
是否可以在移动到下一个视图之前滚动到图像的末尾?
@Override
public Object instantiateItem(View view, int i) {
WebView webview = new WebView(view.getContext());
webview.setHorizontalScrollBarEnabled(true);
webview.loadUrl("http://www.site.with.an/image.gif");
((ViewPager) view).addView(webview, 0);
return webview;
}
Run Code Online (Sandbox Code Playgroud) 我想覆盖现有的默认上下文操作栏(CAB)进行文本选择.我的意思是,当我在webview上选择一些文本时,我想用自己的按钮显示我自己的CAB.我尝试使用Android文档实现CAB.OnLongClickListener不捕获Web视图中的文本选择事件.捕获文本选择的事件是什么?是否可以隐藏默认CAB并在文本选择上显示我的CAB?
childWebView.setOnLongClickListener(new OnLongClickListener() {
@Override
// Called when the user long-clicks on someView
public boolean onLongClick(View view) {
if (mActionMode != null) {
return false;
}
// Start the CAB using the ActionMode.Callback defined above
mActionMode = startActionMode(mActionModeCallback);
view.setSelected(true);
return true;
}
});
Run Code Online (Sandbox Code Playgroud) 如何正确访问onCreate函数中的"view"变量?我想要,loadUrl()但它会抛出一个错误,public Emitter.Listener onServerReceive = new Emitter.Listener() {在view = loadUrl:
Run Code Online (Sandbox Code Playgroud)E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException at com.myapp.MainActivity$7$1.run(MainActivity.java:399) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:177) at android.app.ActivityThread.main(ActivityThread.java:4947) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) at dalvik.system.NativeStart.main(Native Method)
import com.github.nkzawa.emitter.Emitter;
....
public class MainActivity extends Activity {
WebView view;
Socket mSocket;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
view = (WebView) findViewById(R.id.webView);
view.getSettings().setJavaScriptEnabled(true);
...
view.loadUrl("file:///android_asset/loading.html");
}
...
@JavascriptInterface
public void websocket_start(){
try …Run Code Online (Sandbox Code Playgroud) 我有一个Android WebView,其JavaScript通过addJavascriptInterface方法调用Android方法:
myWebview.addJavascriptInterface(new JavascriptBridge(), "Android");
public class JavascriptBridge {
public String getAString() {
return "my_str";
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用.我想将一个int列表返回给WebView.试过这个:
public class JavascriptBridge {
public int[] getMyInts() {
return new int[]{1,2,3};
}
}
Run Code Online (Sandbox Code Playgroud)
但是在JS中调用此函数会返回undefined:
var myInts = Android.getMyInts();
Run Code Online (Sandbox Code Playgroud)
是否有Android Javascript界面的有效返回类型列表?它只是原始人吗?