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 未通过隐式意图在浏览器中打开的主要内容,如果未能解决你的问题,请参考以下文章