CMS url 未通过隐式意图在浏览器中打开

Posted

技术标签:

【中文标题】CMS url 未通过隐式意图在浏览器中打开【英文标题】:CMS url not opening in browser via implicit intent 【发布时间】:2018-03-21 09:16:13 【问题描述】:

我正在尝试打开 URL 扩展名为 .cms 的新闻提要

当尝试简单的网址时,例如http://www.google.com/,它按预期工作,但不适用于 .cms 页面。

我不想添加自己的 WebView。我很确定 .cms 导致了问题,但不知道如何使用现成的/第三方浏览器解决它。

public static void openLinkInExternalBrowser(Context context, String url) 
  Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
   context.startActivity(browserIntent);

当我尝试打开它时,我得到以下异常

android.content.ActivityNotFoundException: No Activity found to handle Intent  act=android.intent.action.VIEW dat= http://timesofindia.indiatimes.com/india/spurned-lovers-tip-off-helped-track-kill-top-jaish-terrorist-khalid/articleshow/61013573.cms  
                                                                 at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1936)
                                                                 at android.app.Instrumentation.execStartActivity(Instrumentation.java:1615)
                                                                 at android.app.Activity.startActivityForResult(Activity.java:4471)
                                                                 at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:54)
                                                                 at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
                                                                 at android.app.Activity.startActivityForResult(Activity.java:4429)
                                                                 at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:708)
                                                                 at android.app.Activity.startActivity(Activity.java:4788)
                                                                 at android.app.Activity.startActivity(Activity.java:4756)
                                                                 at adapters.NewsAdapter$1.onClick(NewsAdapter.java:66)
                                                                 at android.view.View.performClick(View.java:6219)
                                                                 at android.view.View$PerformClick.run(View.java:24482)
                                                                 at android.os.Handler.handleCallback(Handler.java:769)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                 at android.os.Looper.loop(Looper.java:164)
                                                                 at android.app.ActivityThread.main(ActivityThread.java:6540)
                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                 at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

【问题讨论】:

链接完美地使用了我的意图..您尝试了哪个操作系统版本? Android Oreo 8.0 和 Marshmallow 6.0 我厌倦了 oreo 8.0,它工作得很好。 那你发现我的代码有什么问题吗? 连你的代码都没问题。我试过这个链接timesofindia.indiatimes.com/india/… 【参考方案1】:

由于某些原因,您的 url 可能一直使用“www”。因此请尝试使用“http”或“https”来包装它。这对我有用。

public static void openLinkInExternalBrowser(Context context, String url) 
    if (!url.startsWith("https://") && !url.startsWith("http://")) 
        url = "http://" + url; 
    
   Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
   context.startActivity(browserIntent);
 

【讨论】:

没有。这样做时,我收到消息“无法访问站点”,实际上它可以通过复制粘贴相同的 url 在浏览器上正常打开。如果条件导致 url 损坏 我猜这不是代码问题..我猜你的 dns 或类似的东西有问题。尝试将硬编码的 url 添加为 url 并检查。 否,但在移动浏览器中复制了相同的 url 并且有效

以上是关于CMS url 未通过隐式意图在浏览器中打开的主要内容,如果未能解决你的问题,请参考以下文章

[android] 隐式意图激活另外一个activity

如何制作隐式意图以在 youtube 应用程序中打开特定视频? [复制]

如何使我的应用程序对打开 PDF 文件的隐式意图可见?

Android5.0隐式启动服务

利用隐式意图打开各种文件和界面

使用隐式意图读取图库文件夹