在 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) {
}
}
我正在 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) {
}
}