활동을 만들고 앱에 H5 페이지를 삽입하세요.
사용자가 H5 페이지의 버튼을 클릭하여 앱의 다른 페이지로 이동할 수 있도록 하려면 어떻게 해야 하나요?
예를 들어 H5 페이지의 충전 버튼을 클릭하면 충전 인터페이스로 이동하고, 지금 구매 버튼을 클릭하면 제품 페이지로 이동합니다.
H5와 APP는 어떻게 데이터와 상호작용하나요?
배경은 어떻게 작성하나요?
예시가 있나요?
조언 좀 부탁드립니다.
활동을 만들고 앱에 H5 페이지를 삽입하세요.
사용자가 H5 페이지의 버튼을 클릭하여 앱의 다른 페이지로 이동할 수 있도록 하려면 어떻게 해야 하나요?
예를 들어 H5 페이지의 충전 버튼을 클릭하면 충전 인터페이스로 이동하고, 지금 구매 버튼을 클릭하면 제품 페이지로 이동합니다.
H5와 APP는 어떻게 데이터와 상호작용하나요?
배경은 어떻게 작성하나요?
예시가 있나요?
조언 좀 부탁드립니다.
위의 방법들은 모두 꽤 좋습니다. 하지만 실제로는 단순한 점프 문제일 뿐이므로 그렇게 복잡할 필요는 없습니다.
웹뷰에서 점프 정보를 파악한 후 안드로이드 엔드와 프론트 엔드가 인터페이스에 대해 논의하고 직접 처리합니다.
예: 웹에 점프가 있습니다
<code><a href="example://jumpToSettings">跳转设置</a></code>
클릭 후 webview의 shouldOverrideUrlLoading 기능이 실행됩니다. Android 측:
<code>webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { L.i(url); // 获取到 example://jumpToSettings ,然后接下来就是字符串处理了 optionUrl(url); // 判断如果是跳转字符串,进行跳转 return true; // 消费,不让网页跳转 } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // super.onPageStarted(view, url, favicon); } });</code>
JavaScriptCore
인터넷에 예시가 많고 Apple의 설명서도 매우 상세합니다
Android 측에서 WebView는 H5를 로드하고 H5의 js 코드는 다음과 같을 수 있습니다.
<code><script type="text/javascript"> function jumpToAppPages(){ toActivity.OpenLinkH5("https://www.baidu.com"); } </script> </code>
현재 WebView가 있는 활동에 다음을 작성하세요.
<code>mWebViewContent.addJavascriptInterface(new JumpAppInterFace(mContext),"toActivity"); </code>
그중 JumpAppInterFace
는 다른 Activity로 점프하기 위해 주입해야 하는 클래스입니다.
<code>public class JumpAppInterFace { private static final String TAG = "JumpAppInterFace"; private android.content.Context Context; public JumpAppInterFace(android.content.Context Context) { this.Context = Context; } @JavascriptInterface public void OpenLinkH5(String url){ if (!TextUtil.isEmpty(url)){ Intent intent=new Intent(Context, AnotherActivity.class); intent.putExtra("url",url); Context.startActivity(intent); } } }</code>
이것을 stackoverflow에서 봤는데 작동하는지 확인해보세요.
<code>webview.addJavascriptInterface(new Object() { @JavascriptInterface public void openActivity(String activity){ Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(activity)); mContext.startActivity(i); } }, "android"); <a href="javascript:void(0)" onclick="alert(android.openActivity('Recharge'))">充值</a> <a href="javascript:void(0)" onclick="alert(android.openActivity('Goods'))">抢购</a></code>