今天在网上看到有一个人,直接进抖音某个指定用户的界面,一般模拟的方式,要先通过搜索的方式,再选用户,点进去
但是这样操作,不大友好,也影响速度
最理想的方式,是通过"无障碍",直接控制抖音进入指定的界面
一般要先分析抖音app的,用apkTool反编译出AndroidManifest.xml文件
然后分析xml代码,找到相应的intent-filter
在他的AndroidManifest.xml中应该注册了一个相应的scheme来接收参数并且跳转到用户页面的那个activity里面去
清单文件里面的intent过滤器自定义的data数据然后再写了个HTML打开这个这个HTML就可以了
后来经过指点,用“snssdk1128://user/profile/102630827178”用抖音唯一的scheme就可以了
用E4A打开指定网址()这个方法就可以了
理解
一个链接地址URLScheme的协议格式如下:
host和path可选择添加
query:代表URL传递的数据
配置
注意:上面两个intent-filter里的配置信息必须分开。
结果:只需要在AndroidManifest.xml清单文件中配置这些就可以打开APP了。
获取链接数据:若是你还需要获取地址中的数据,请看下面。
如果使用Java获取:
publicclassSplashActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intentintent=getIntent();Stringscheme=intent.getScheme();Uriuri=intent.getData();if(uri!=null){Stringhost=uri.getHost();Stringpath=uri.getPath();StringqueryString=uri.getQuery();Stringtest1=uri.getQueryParameter("arg0");//参数1Stringtest2=uri.getQueryParameter("arg1");//参数2}}}
如果使用WebView访问该网页,获取数据的操作为:
webView.setWebViewClient(newWebViewClient(){@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){Uriuri=Uri.parse(url);if(uri.getScheme().equals("zyt")&&uri.getHost().equals("app")){Stringarg0=uri.getQueryParameter("arg0");Stringarg1=uri.getQueryParameter("arg1");}else{view.loadUrl(url);}returntrue;}});