从YouTube的共享菜单加载后,在WebView中打开URL

时间:2019-12-17 11:11:44

标签: android kotlin webview

我有一个Android WebView项目,并且已将其添加到共享菜单中,以便从YouTube获取URL。

Screenshot from my phone after adding my app to share menu

我正在清单中使用这段代码

<intent-filter>
  <action android:name="android.intent.action.SEND" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:mimeType="text/plain" />
</intent-filter>

从YouTube的共享菜单中单击我的应用程序图标后,我需要代码才能在WebView中打开URL。

例如:

val intent = intent
    intent.action = Intent.ACTION_SEND
    val uri = intent.data

    if (uri == null){
        webframe.loadUrl("file:///android_asset/index.html")
    }else{
        webframe.loadUrl(uri.toString())
    }

3 个答案:

答案 0 :(得分:0)

您可以通过以下代码段在活动中获取参数:

Intent intent = getIntent();
Uri uri = intent.getData();
//uri is what you need.

答案 1 :(得分:0)

尝试一下:

<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />              
<data android:host="www.youtube.com" android:mimeType="text/*" />
</intent-filter>

答案 2 :(得分:0)

感谢大家,我找到了解决问题的方法

将您诱骗的人添加以下代码以显示:

<intent-filter>
   <action android:name="android.intent.action.SEND"/>
   <category android:name="android.intent.category.DEFAULT"/>
   <data android:mimeType="
</intent-filter>

下一步,将此代码添加到MainActivity:

when (intent?.action) {
        Intent.ACTION_SEND -> {
            if ("text/plain" == intent.type) {
                webframe.loadUrl(intent.getStringExtra(Intent.EXTRA_TEXT))
            }
        }
        else -> {
            webframe.loadUrl("file:///android_asset/index.html")
        }
    }