WebView JavaScript 链接在触摸时有效,但在使用轨迹球时无效
Posted
技术标签:
【中文标题】WebView JavaScript 链接在触摸时有效,但在使用轨迹球时无效【英文标题】:WebView JavaScript links work on touch but not when using trackball 【发布时间】:2010-11-26 15:48:52 【问题描述】:我有一个简单的基于 WebView 的活动,它遵循 Hello, WebView 示例来启用 javascript 并重载 shouldOverrideUrlLoading()
。
当用户触摸网页上的链接时,此 Activity 效果很好。但是,如果用户使用轨迹球并单击链接,则生成的页面加载会显示禁用 JavaScript 的页面。
public class ViewUrl extends Activity
protected WebView view;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.view_url);
final String url = "http://www.opentable.com/phone/reviews.aspx?rid=2947";
view = (WebView) findViewById(R.id.widget1);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl( url );
view.setWebViewClient( new WebViewClient()
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
view.loadUrl(url);
return true;
);
view_url.xml 文件很简单:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_>
<WebView
android:layout_
android:layout_
android:id="@+id/widget1" />
</RelativeLayout>
以下是一些显示正确和错误行为的屏幕截图。
使用触摸点击(正确):
Click using Touch (CORRECT) http://img.skitch.com/20090908-g2acnrpb1riuq11ys3p1u6fd4d.png
使用轨迹球点击(不正确):
Click using Trackball (INCORRECT) http://img.skitch.com/20090908-my23yxakudwhheq875j2hcwg6h.png
有什么想法可以让轨迹球行为与触摸行为相同吗?或者至少在通过轨迹球点击链接时启用JS?
【问题讨论】:
【参考方案1】:“Hello,WebView”示例似乎已损坏。根据 IRC 频道上某人的建议,我删除了 shouldOverrideUrlLoading()
的覆盖,一切似乎都很顺利。
修改后的工作代码:
public class ViewUrl extends Activity
protected WebView view;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.view_url);
final String url = "http://www.opentable.com/phone/reviews.aspx?rid=2947";
view = (WebView) findViewById(R.id.widget1);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl( url );
view.setWebViewClient( new WebViewClient() ); // probably not necessary if you don't do anything else with the WebViewClient
【讨论】:
以上是关于WebView JavaScript 链接在触摸时有效,但在使用轨迹球时无效的主要内容,如果未能解决你的问题,请参考以下文章
Javascript触摸android webview中的事件