【问题标题】:Webview for any external links refering to its domain?引用其域的任何外部链接的 Webview?
【发布时间】:2013-09-12 16:31:37
【问题描述】:

您知道当您单击任何链接时,系统会询问您要使用哪个浏览器/应用程序打开它?从这个概念开始,是否可以在我的 webview 中做到这一点?例如,当域为 www.stackoverflow.com 时,它会询问我是否要使用我的 webview 打开链接(仅为 stackoverflow 链接创建)?我不知道我是否清楚。

【问题讨论】:

    标签: java android dns android-webview hyperlink


    【解决方案1】:

    在您的 AndroidManifest.xml 中的 <activity> 下写入以下标签。

    当用户点击 StackOverflow 链接时,系统会将您的应用包含在列表中。

    <intent-filter>
      <action android:name="android.intent.action.VIEW"></action>
      <category android:name="android.intent.category.DEFAULT"></category>
      <category android:name="android.intent.category.BROWSABLE"></category>
      <data android:host="www.stackoverflow.com" android:scheme="http"></data>
    </intent-filter>
    

    更新

    您可以在Activity 中使用getIntent() 来获取参数(URL)。在ActivityonCreate 方法中添加以下行。

        Intent intent = getIntent();
        if (Intent.ACTION_VIEW.equals(intent.getAction())) {
            String url = intent.getData().toString();
            webView.loadUrl(url);
        }
    

    【讨论】:

    • 如何使用getIntent()?其实我用webview.loadUrl("http://www.stackoverflow.com");
    • 我试过 Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.stackoverflow.com")); startActivity(i); 。当我打开应用程序时,它会询问我要使用哪个应用程序打开它(这很奇怪,因为它必须默认打开与该应用程序的链接)。当我尝试点击一个链接通过邮件发送给我的朋友时(只需 www.stackoverflow.com),它要求我只使用浏览器而不是应用程序打开
    • 您的应用需要接收意图而不是发送出去。 startActivity 用于打开另一个活动(应用程序)以显示 URL。那不是你打算做的,对吧?当其他应用想要打开某个 StackOverflow URL 时,您希望接收该 URL。
    • 正是..那么您的建议是什么?
    • 正如我在回答帖子中所述,在您的 AndroidManifest.xml 中添加 &lt;intent-filter&gt;,并在您的 onCreate 方法中调用 getIntent() 以接收来自其他应用程序的 URL。
    猜你喜欢
    • 2013-07-05
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多