第三方app进入
首先在自己的APP中 AndroidMnifest.xml
<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="scheme_xxx" android:host="host_xxx" android:path="/path_xxx" /> </intent-filter>
1.在应用内通过Intent打开:
public void startActivity(){
String packageName = "要打开的App的包名";
String uri = String.format("scheme_xxx://host_xxx/path_xxx?packageName=%s",packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.addCategory(Intent.CATEGORY_DEFAULT);
PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
boolean isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
startActivity(intent);
}
}
2.通过使用webview打开:
在xml中使用<a href=scheme_xxx://host_xxx/path_xxx?packageName=包名">点击按钮</a>
如果mWebView.setWebViewClient();
设置了此函数,则不能通过a链接自动打开,只能通过拦截链接再使用Intent跳转。
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, "shouldOverrideUrlLoading: " + url);
Intent intent = null;
try {
intent = Intent.parseUri(url,Intent.URI_INTENT_SCHEME);
} catch (URISyntaxException e) {
e.printStackTrace();
return false;
}
startActivity(intent);
return true;
}
});
3.在浏览器打开:地址:scheme_xxx://host_xxx/path_xxx?packageName=包名
注:只能在终端自带浏览器或者Chrome 浏览器打开,其他浏览器均打开不开