我正在构建一个应用程序,允许用户在Web视图中单击指向pdf文档的链接并在视图中显示它.我使用谷歌文档查看pdf文件工作,但我的问题是,我只希望该方法适用于pdf链接而不是每个链接,继承我的代码:
public class HelloWebVIEwActivity extends Activity {WebVIEw mWebVIEw;/** Called when the activity is first created. */@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); mWebVIEw = (WebVIEw) findVIEwByID(R.ID.webvIEw); mWebVIEw.getSettings().setJavaScriptEnabled(true); mWebVIEw.loadUrl("https://nuigalway.blackboard.com/webapps/login/"); mWebVIEw.setWebVIEwClIEnt(new HelloWebVIEwClIEnt());}private class HelloWebVIEwClIEnt extends WebVIEwClIEnt { @OverrIDe public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) { String GoogleDocs = "https://docs.Google.com/vIEwer?url="; mWebVIEw.loadUrl(GoogleDocs + url); return true; }}@OverrIDepublic boolean onKeyDown(int keyCode, KeyEvent event){ if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebVIEw.canGoBack()) { mWebVIEw.goBack(); return true; } return super.onKeyDown(keyCode, event);}}
我认为错误在shouldOverrIDeUrlLoading方法中.是否有任何方法只允许我在webvIEw中单击文件本身时打开pdf网址?
解决方法:
您的shouldOverrIDeUrlLoading逻辑不正确. url参数是被点击的网址.所以你想拦截任何pdf链接,但让webvIEw正常处理所有其他网址.
@OverrIDe public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) { if (url.endsWith(".pdf")) { // Load "url" in Google docs } else { // Load all other urls normally. vIEw.loadUrl(url); } return true; }
总结 以上是内存溢出为你收集整理的android webview pdf查看全部内容,希望文章能够帮你解决android webview pdf查看所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)