>백엔드 개발 >PHP 튜토리얼 >javascript - H5 페이지는 APP 애플리케이션과 어떻게 상호 작용합니까?

javascript - H5 페이지는 APP 애플리케이션과 어떻게 상호 작용합니까?

WBOY
WBOY원래의
2016-09-27 14:18:111294검색

활동을 만들고 앱에 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>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.