2017-11-28 4 views
0

Chrome WebView에서 Android의 기본 공유 (파일) 기능을 호출 할 수 있습니까? 하이브리드 이온 AngularJS 앱을 만들고 있는데 파일 용 Android의 기본 공유 기능을 사용하고 싶습니다. 다른 플러그인을 사용해 보았지만 모두 기기에있는 각 앱에 맞춤 공유 구현을 사용합니다. 충분하지 않습니다. 당신이 트리거 어떻게 그래서Chrome WebView : 기본 Android 공유 기능 실행

public void openSharing(String code) { 
     String message = "Your share message: " + code; 
     Intent share = new Intent(Intent.ACTION_SEND); 
     share.setType("text/plain"); 
     share.putExtra(Intent.EXTRA_TEXT, message); 
     startActivity(Intent.createChooser(share, "Share your code")); 
    } 

:

+0

Android에서 수행하려는 작업을 명확히 할 수 있습니까? Intent/Intent Filters : https://developer.android.com/guide/components/intents-filters.html와 같지만 발신자 앱의 역할과 수신자 앱의 역할에 대해 잘못 생각한 것 같습니다. . –

+0

사실, 안드로이드 WebView에서 내가 할 수있는 일이 가능한지 궁금합니다. 기본적으로 WebView (Ionic Hybrid APP)에는 원격 서버에 파일로 연결되는 링크가 있습니다. 그 파일을 선택하고 간단히 공유 기능을 호출하고 싶습니다. 이는 휴대 전화의 모든 파일로 할 수있는 기능입니다. – Milos

+0

Android WebView no. 추가 자바 코드와 Javascript 인터페이스 (예 : Cordova 플러그인)가 있습니다. 원하는 것을 수행하는 Cordova 플러그인이있는 것으로 보입니다 : https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin 당신이 보았다면, 그것이 당신의 필요에 맞지 않는 방법을 확장하십시오. –

답변

0

당신이 공유를 시작하는 작업 인 JavascriptInterface

MainActivity.java

public class WebViewJavaScriptInterface { 
     private Context context; 

     @JavascriptInterface 
     public void sharingIsCaring(String code) { 
      openSharing(code); 
     } 
} 

이 추가 만들기 위해 그것을 시도 했 @JavascriptInterface

당신은 당신의 OnCreate() 메도이를 추가해야합니다 : 그래서

view.addJavascriptInterface(new WebViewJavaScriptInterface(this), "SmashIt"); 

가 JS에서 그것을 실행하는 데에만 sharingIsCaring()

당신이해야 할 함수를 호출 할 필요가 당신이 전화 기능에 대한 SmashIt를 배치하여 안드로이드는 이제 당신이 부르는 사람이 될 것입니다. 따라서 다음과 같이 표시됩니다.

SmashIt.sharingIsCaring(code)