H5拉起安卓app 指定的activity

H5页面代码: <a href="youxi://my.com/game_detail?id=3667&is_down=0&type=0">查看游戏详情0</a>

 

在浏览器打开,点击跳转到app指定的页面。

 

app的清单文件:

<activity

android:name=".GameDetaiActivity"

android:configChanges="orientation|screenSize|keyboardHidden"

android:hardwareAccelerated="true"

android:screenOrientation="portrait"

android:windowSoftInputMode="adjustPan|stateHidden">

 

<intent-filter><!-- 这是从h5跳过来需要的-->

<action android:name="android.intent.action.VIEW" />

 

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.BROWSABLE" />

 

<data

android:host="my.com"

android:path="/game_detail"

android:scheme="youxi" />

</intent-filter>

 

</activity>

 

GameDetaiActivity里面写方法:

/**

* 从网页H5跳转过来的

*/

private void getWebData() {

Uri uri = getIntent().getData();

if (uri != null) {

String scheme = uri.getScheme();//youxi

String uriHost = uri.getHost();//my.com

String uriPath = uri.getPath();// /game_detail

 

 

id = Integer.parseInt(Objects.requireNonNull(uri.getQueryParameter("id")));//游戏id

webType = Integer.parseInt(Objects.requireNonNull(uri.getQueryParameter("type")));//

int is_down = Integer.parseInt(Objects.requireNonNull(uri.getQueryParameter("is_down")));

if (1 == is_down) {

isDown = true;//跳转进来就开始自动下载

} else {

isDown = false;//

}

 

LogUtil.e("游戏详情:id=" + id + ";webType=" + webType + ";is_down=" + is_down);

 

}

}

 

若要app内部用webview打开该H5,也能跳转到指定的activity。

// 设置Web视图

wv.setWebViewClient(new MyWebViewClient());

 

// 监听 所有点击的链接,如果拦截到我们需要的,就跳转到相对应的页面。

private class MyWebViewClient extends WebViewClient {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

 

if (TextUtils.isEmpty(url)) {

return false;

}

 

Uri uri = Uri.parse(url);

String scheme = uri.getScheme();//还需要判断host

Log.e("logcat", "网页 scheme=" + scheme + " ;url=" + url);

if (TextUtils.equals("youxi", scheme)) {

 

// Intent intent = new Intent(MainActivity.this, RegisterByPhone.class);

//startActivity(intent);

 

return true;//true,拦截在内部。内部处理掉

} else {

return false;

}

 

 

// return super.shouldOverrideUrlLoading(view, url);

}

 

 

@SuppressLint("SetJavaScriptEnabled")

@Override

public void onPageFinished(WebView view, String url) {

view.getSettings().setJavaScriptEnabled(true);

super.onPageFinished(view, url);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值