相关疑难解决方法(0)

在webview中单击按钮后,如何在android应用程序中从webview打开外部应用程序?

我已经尝试过如何处理 webView URL 上的 intent://? 这个解决方案只是在我的 WebView 中打开一个 Google Play 商店网页,我想要的是点击,另一个应用程序应该打开,其意图在 Chrome 中提供。

我的应用程序有一个运行良好的 WebView。在一个阶段,WebView 请求访问以下内容(外部支付应用程序):

intent://pay/?pa=digitalshowroom1.payu@indus&pn=DOTPE%20PRIVATE%20LIMITED&tr=13261664955&tid=CX0FOrvSrHzDh7gP&am=1.00&cu=INR&tn=OrderId-CX0FOrvSrHzDh7gP
Run Code Online (Sandbox Code Playgroud)

当我使用 WebView 在 Chrome 中使用的相同网站时,它成功打开外部支付应用程序,即 Chrome 能够处理该意图,我的应用程序如何处理相同的意图。

我似乎知道我必须使用

public boolean shouldOverrideUrlLoading(WebView view, String url)
Run Code Online (Sandbox Code Playgroud)

为此,我使用它如下:

public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if (url != null && (url.startsWith("whatsapp://") || url.startsWith("tel") || url.startsWith("market"))) {
                    view.getContext().startActivity(
                            new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                    return true;
                }

else {
return false;

                }
Run Code Online (Sandbox Code Playgroud)

现在,这段代码正在处理诸如打开 WhatsApp、呼叫应用程序等的意图,因为它们以whatsappor开头tel,因此我可以利用该url.startsWith()方法。

如何处理请求访问外部应用程序并以 开头的链接intent://

提前致谢!

android webview android-intent

5
推荐指数
0
解决办法
144
查看次数

Web开放式意图://协议

当我将url加载到WebView并尝试打开链接时,其中一些显示错误页面,如:

net :: ERR_UNKNOWN_URL_SCHEME意图://maps.yandex.ru?utm_medium = tab ...

如何打开此链接,或者至少检查是否安装了适当的应用并运行它?

我试图通过实现自定义WebViewClient来覆盖url加载:

@Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (!url.startsWith("http")) {
            getActivity().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse(url)));
            return true;
        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,应用程序崩溃与ActivityNotFoundException.

02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://maps.yandex.ru?utm_medium=tab-maps&text=???????&utm_source=serp&yandexuid=2258091361456330110 }
02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err:     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1798)
02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err:     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)
02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err:     at android.app.Activity.startActivityForResult(Activity.java:3930)
02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err:     at android.app.Activity.startActivityForResult(Activity.java:3890)
02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err:     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:784)
02-24 20:58:51.886 31255-31255/ru.uxapps.voicesearch W/System.err:     at android.app.Activity.startActivity(Activity.java:4213) …
Run Code Online (Sandbox Code Playgroud)

android webview android-intent

4
推荐指数
1
解决办法
4659
查看次数

标签 统计

android ×2

android-intent ×2

webview ×2