【问题标题】:android studio webbrowser get link when open as default webbrowser appandroid studio webbrowser 在作为默认 webbrowser 应用程序打开时获取链接
【发布时间】:2021-01-24 16:29:48
【问题描述】:

我想创建一个网络浏览器,我成功地将它定义为带有这些行的默认浏览器。

<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="http" />
                <data android:scheme="https" />


            </intent-filter>
 

但是现在,例如,当我继续使用 Gmail 并单击链接时,它会打开我的应用程序,但问题是我没有找到一种方法让它能够打开应用程序并让 Webview 加载链接我在 Gmail 上的这个例子中点击了。那么当另一个应用程序启动 Web 浏览器时,我该怎么做?

代码

 try {
            String url = getIntent().getData().getPath();
            Toast.makeText(this, url, Toast.LENGTH_LONG).show();
            Log.d("link", url);
            WebView myweb=(WebView) findViewById(R.id.web);
            myweb.loadUrl(url);
        }catch(Exception e){
            Log.d("error","no link"+String.valueOf(e));

        }

【问题讨论】:

    标签: android android-studio webview


    【解决方案1】:

    Android 操作系统在 Intent 对象内将 URL 路径传递给您的应用。

    在您的 WebBrowser 活动中,您可以获得如下链接:

    科尔廷

    val url = intent.data?.toString()
    

    Java

    String url = getIntent().getData().toString()
    

    那么你可以简单地调用:

    mywebview.load ( url );
    

    【讨论】:

    • 感谢您的帮助,您是否可以帮助我的意图。
    • 当我做` Intent intent = new Intent(Intent.ACTION_MAIN); String url = intent.getData().getPath();` 我得到java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getPath()' on a null
    • 抱歉,我编辑了我的答案。你不应该创建一个新的意图,通过使用 getIntent() 来使用 Activity 提供的意图
    • 谢谢,继续提供帮助,但它等于 /r/ 是否正常我将代码放在问题主体上。因为如果是的话,网络视图什么也不显示。我选择的链接适用于 android navigator
    • 试试 grtIntent().getData().toString()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2012-06-11
    • 1970-01-01
    • 2011-07-12
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多