2017-11-14 8 views
-3

私のアプリでは動作しない共有]ボタンは、私が<strong>アンドロイドスタジオ</strong>に<strong>のWebView</strong>を使用して<strong>シンプルなウェブサイトのアプリ</strong>を作成し、<strong>対応Javaスクリプト</strong>アプリ上でそれにも<strong>インターネットアクセス許可</strong>を与えている

Iこのコードを使用してWhatsApp共有ボタンを追加しました

<button> 
<a href="whatsapp://send?text=HERE GOES THE URL ENCODED TEXT YOU WANT TO SHARE" data-action="share/whatsapp/share">Share via Whatsapp</a> 
</button> 

これはすべてのモバイルブラウザでうまくいきますトン私は利用できません

Webページを言ってエラー画面を取得しています私のアプリでこれを使用しようとすると

Webページ のWhatsAppで://送信テキスト=私は%20interested%?これはmainactivity.java

で私のコードです

ネット:: ERR_UNKNOWN_URL_SCHEME

:ので、20インチ%20your%20car%20for%20salecould ロードできません

package com.a4extras.ukzz.whatsappdaily; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 




public class MainActivity extends AppCompatActivity { 

    private WebView mywebView; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mywebView = (WebView)findViewById(R.id.WebView); 
     WebSettings webSettings = mywebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mywebView.loadUrl("http://ukzz4u.blogspot.com/2017/11/whatsapp-share-01.html"); 
     mywebView.setWebViewClient(new WebViewClient()); 
    } 



    @Override 
    public void onBackPressed() { 
     if (mywebView.canGoBack()) { 
      mywebView.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
    }} 

私のアプリがのWhatsApp取っているので、これはです:URL として//を共有]ボタンが正しく

を動作するように、どのようにこれを防ぐことができ、必要なスクリプトを おかげ

+0

、これがそのまま動作するはずです。あなたはシミュレータでそれを試していますか?デバイスにWhatsAppがインストールされていますか? –

+0

あなたのURLは単純に** whatsapp:// send?text =ここに共有しようとしている文字コード** –

答えて

1

を助けてください簡単な回避策はhrefjavascriptのを使用することです:

<a href="javascript:go('whatsapp://send?text=HERE')">Share</a> 

や、クロムベースを使用している場合DのWebViewの:

<a href="intent://send?text=HERE#Intent;scheme=whatsapp;package=com.whatsapp;end">Share</a> 

より複雑であるが、より強力なソリューションをご自身でのWhatsAppスキームを制御するためのものである:あなたのWebViewClientで

デバイス上で
@Override 
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
    Uri uri = request.getUrl(); 
    if (Objects.equals(uri.getScheme(), "whatsapp")) { 
     try { 
      Intent intent = Intent.parseUri(request.getUrl().toString(), Intent.URI_INTENT_SCHEME); 
      if(intent.resolveActivity(getPackageManager()) != null) 
       startActivity(intent); 
      return true; 
     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } 
    } 

    return super.shouldOverrideUrlLoading(view, request); 
} 
+0

ありがとうございました – user8936954

+0

Itzzが動作していません実際には動作していません。 – user8936954

+0

OK、in 'shouldOverrideUrlLoading'メソッドの' WebViewClient'を使うと、デフォルトアクションをオーバーライドすることができます。私は答えを修正します。 –

関連する問題

 関連する問題