Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.polsl.lab6przykladkotlin
- import android.app.Activity
- import android.content.Intent
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.provider.MediaStore
- import android.view.ActionMode
- import android.webkit.JavascriptInterface
- import android.widget.Toast
- import java.util.*
- import android.webkit.WebView
- import java.lang.StringBuilder
- import kotlin.collections.ArrayList
- class kartkaActivity : AppCompatActivity() {
- val gifts = ArrayList<String>()
- var imgPath = String()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- gifts.addAll(intent.getStringArrayListExtra("gifts"))
- imgPath = intent.getStringExtra("imgpath")
- //WebView - kontrolka wyswietlajaca html
- val page = WebView(this)
- //wlaczenie obslugi JS
- page.settings.javaScriptEnabled=true
- //dodanie interfejsu pomiędzy Kotlinem a JS
- //this - obiekt tej klasy dostarcza metody JSInterface, activity - nazwa widoczna w JS
- page.addJavascriptInterface(this, "activity")
- //zaladowanie zawartosci kontroli WebView - pliki z katalogu assests w projekcie
- page.loadUrl("file:///android_asset/kartka.html")
- //wstawienie kontrolki WebView jako calej fasady aktywnosci
- setContentView(page)
- }
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- if (resultCode == RESULT_OK) {
- var uri = data!!.data;
- imgPath = uri!!.encodedPath!!
- }
- }
- @JavascriptInterface //adnotacja sygnalizujaca ze metoda bedzie dostepna z poziomu JS
- fun getImagePath() : String = imgPath
- @JavascriptInterface
- fun getLocation(): String {
- return Date().toString()
- }
- @JavascriptInterface
- fun getGifts(): String {
- val builder = StringBuilder()
- for (str in gifts) {
- builder.append(str).append('\n');
- }
- return builder.toString()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement