addJavascriptInterface ?

Diskussion i 'Frågor, support och diskussion' startad av Danneman101, 21 aug 2009.

  1. Danneman101

    Danneman101 Kid Droid Medlem

    Blev medlem:
    18 aug 2009
    Inlägg:
    69
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag har testat att exponera en java-funktion för html/js via addJavascriptInterface(). Funktionen vill dock inte anropas trots att jag följt instruktionerna till punkt och pricka (inbillar jag mig iaf).

    Java-kod som exponerar funktion för html/js:
    Kod:
    package com.myApp;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.webkit.WebView;
    import android.media.MediaPlayer;
    import android.net.Uri;
    import java.io.*;
    
    import com.myApp.R.id;
    
    public class myApp extends Activity 
    {
        WebView webview;	
        MediaPlayer mp;
    	   
        public class SoundPlayer
        {  
            public void PlaySound_mySound()
            {
                mp = new MediaPlayer();
                mp = MediaPlayer.create(getBaseContext(), R.raw.mySound);
                mp.start();
            }	    	
        }    
            
        SoundPlayer sp = new SoundPlayer();
        
        
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);        
    
            webview = (WebView)findViewById(id.webview);     
            webview.getSettings().setJavaScriptEnabled(true);
            webview.loadUrl("file:///android_asset/WEBPAGES/index.html"); 
    
            webview.addJavascriptInterface(sp, "sp");
        }
    }
    

    Javascript som anropar java-funktionen:
    HTML:
    <img src="sound.png" onClick="window.sp.PlaySound_mySound()" />
    
     
  2. Danneman101

    Danneman101 Kid Droid Medlem

    Blev medlem:
    18 aug 2009
    Inlägg:
    69
    Mottagna gillanden:
    0

    MINA ENHETER

    Tydligen fel på emulatorn och ljudet - fick starta om hela datorn - men nu fungerar ovanstående kod finfint. Jag låter den stå så kan någon annan på samma kunskapsnivå som mig kanske få användning av den ;)