在 webView 中使用 intent://swfUrl

Using intent://swfUrl in webView

我正在 webView 中加载一个 url,这个 url 可以与 Adobe Connect 一起使用:

https://online.xxx.xxx/common/html/mobile/locale/en/get.html?launchParams=swfUrl%3Dhttps%253A%252F%252Fonline.xxx.xxx%252Fcommon%252FmeetingAS3%252Fshell%252Fshell.swf%253Froom%253D871935%253Bsession%253Dbreezbreezsrqdnu9pdpbgdcze%2526ticket%253Dp82xcuhciqyi%2526proxy%253Dfalse%2526appInstance%253D7%252F871935%252F%2526aicc_url%253Dhttps%25253A%25252F%25252Fonline.xxx.xxx%25252Fservlet%25252Fverify%25253Fsco-id%25253D871935%2526host%253Donline.xxx.xxx%2526path%253D%25252Fr3hu4se31fc%25252F%2526sco-id%253D871935%2526session%253Dbreezbreezsrqdnu9pdpbgdcze%2526ticket%253Dp82xcuhciqyi%2526transcript-id%253D1722746%2526protos%253Drtmp%253A1935%252Crtmpt%253A443%2526origins%253Dlocalhost%253A8506%2526edges%253Donline.xxx.xxx%2526lang%253Den%2526account_id%253D7%26htmlUrl%3Dhttps%253A%252F%252Fonline.xxx.xxx%252Fr3hu4se31fc%252F%253Flauncher%253Dfalse%26mode%3Dauto%26lang%3Den%26close_meeting%3Djavascript%3Awindow.close%28%29%3B&appPackage=air.com.adobe.connectpro&locale=en&type=meeting

我的手机上有应用程序 Adobe Connect,我 select Open Adobe Connect Mobile 从上面 url,当我 select 这个项目让我吼叫 url :

intent://swfUrl%3Dhttps%253A%252F%252Fonline.xxx.xxx%252Fcommon%252FmeetingAS3%252Fshell%252Fshell.swf%253Froom%253D871935%253Bsession%253Dbreezbreezsrqdnu9pdpbgdcze%2526ticket%253Dp82xcuhciqyi%2526proxy%253Dfalse%2526appInstance%253D7%252F871935%252F%2526aicc_url%253Dhttps%25253A%25252F%25252Fonline.xxx.xxx%25252Fservlet%25252Fverify%25253Fsco-id%25253D871935%2526host%253Donline.xxx.xxx%2526path%253D%25252Fr3hu4se31fc%25252F%2526sco-id%253D871935%2526session%253Dbreezbreezsrqdnu9pdpbgdcze%2526ticket%253Dp82xcuhciqyi%2526transcript-id%253D1722746%2526protos%253Drtmp%253A1935%252Crtmpt%253A443%2526origins%253Dlocalhost%253A8506%2526edges%253Donline.xxx.xxx%2526lang%253Den%2526account_id%253D7%26htmlUrl%3Dhttps%253A%252F%252Fonline.xxx.xx%252Fr3hu4se31fc%252F%253Flauncher%253Dfalse%26mode%3Dauto%26lang%3Den%26close_meeting%3Djavascript%3Awindow.close%28%29%3B#Intent;scheme=connectpro;package=air.com.adobe.connectpro;end

为此 url 我编写了以下代码用于将用户重定向到 Adobe Connect 的应用程序,但我无法将用户重定向到应用程序:

    urlListClassWebView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            if (url.startsWith("intent://") && url.contains("https")) {
                String urls = Uri.decode(url);
                String bkpUrl = null;
                Pattern regexBkp = Pattern.compile("intent://(.*?)#");
                Matcher regexMatcherBkp = regexBkp.matcher(urls);
                if (regexMatcherBkp.find()) {
                    bkpUrl = regexMatcherBkp.group(1);
                    Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://" + bkpUrl));
                    startActivity(myIntent);
                }
            }
        }
    });

解决了我的问题:

if (url.startsWith("intent://swfUrl")) {
    try {
        Context context = view.getContext();
        Intent intent = new Intent().parseUri(url, Intent.URI_INTENT_SCHEME);
        if (intent != null) {
            view.stopLoading();
            PackageManager packageManager = context.getPackageManager();
            ResolveInfo info = packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
            if (info != null) {
                context.startActivity(intent);
            }

        }
    } catch (URISyntaxException e) {

    }
}